Add public constructor for CpuTime #362
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
To write tests for applications, that use CpuTime, it is very useful to mock CpuTime values to see how tested applications behave, depending on CPU load.
Because CpuTime have a private field tps and private from_str constructor function, the only way to mock it currently is to create a temporary file and actually write cpu time-like strings into a file and later read this file.
This makes using mocking libraries like mockall hard or impossible and complicates testing code that now have a state to cleanup (e.g. temporary file with mock data).
Adding a public constructor will help simplify it.