更新时间:2023-02-16 10:14:54
100% 的时间,如果我使用 DateTime
,我会为它创建一个接口.当需要进行测试时,它只会让生活变得更轻松.我相信这也适用于您.
100% of the time, If I am using DateTime
, I create an interface for it. It just makes life a lot easier when it's time for testing. I believe this would work for you as well.
这种方法有几个原因.
DateTime
的依赖从您的业务逻辑中抽象出来.MyAppDateTimeProvider
DateTime
out of your business logic.MyAppDateTimeProvider
public interface IDateTimeProvider
{
DateTime Now { get; }
string GetDateString(int year, int month, int day);
DateTime TryParse(string sqlDateString);
}
public class SqlDateTimeProvider : IDateTimeProvider
{
public DateTime Now => DateTime.UtcNow;
public string GetDateString(int year, int month, int day)
{
return new DateTime(year, month, day).ToString("yyyy-MM-dd");
}
public DateTime TryParse(string sqlDateString)
{
var result = new DateTime();
DateTime.TryParse(sqlDateString, out result);
return result;
}
}