Skip to content

Avoid direct use of DateTime.Now or DateTime.UtcNow #48

Open
asylkhan-azat opened this issue Dec 27, 2021 · 0 comments
Open

Avoid direct use of DateTime.Now or DateTime.UtcNow #48

asylkhan-azat opened this issue Dec 27, 2021 · 0 comments

Comments

@asylkhan-azat
Copy link

asylkhan-azat commented Dec 27, 2021

Introduce new abstraction for providing current time to improve testability and make units more independent of environment system is run on.

public interface ITimeProvider
{
    DateTime Now();
    DateTime UtcNow();
}

Currently, ExecutorJob, RecurrentJobBuilder, and ParameterizedJobBuilder in "Horarium" use DateTime.UtcNow directly without any layer of indirection which makes unit tests depend on the time they were run.

Creating this abstraction will result in more deterministic tests.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant