Unit testing ‐ DateTime.Now - Habilya/LearningCourseNotes GitHub Wiki
IDateTimeProvider.cs
using System;
namespace WatcherFileSystemCommon.Providers;
public interface IDateTimeProvider
{
DateTime DateTimeNow { get; }
}
DateTimeProvider.cs
using System;
namespace WatcherFileSystemCommon.Providers;
public class DateTimeProvider : IDateTimeProvider
{
public DateTime DateTimeNow => DateTime.Now;
}
In the IOC container
services.AddSingleton<IDateTimeProvider, DateTimeProvider>();
Now you can do this in unit tests
var _dateTimeProvider = Substitute.For<IDateTimeProvider>();
_dateTimeProvider.DateTimeNow.Returns(Constants.DEFAULT_MOCKED_DATE_TIME);