如何解决最小起订量设置中的 DateTimeOffset 抛出异常
this.logger.LogDebug("Engine start run at: {time}",DateTimeOffset.Now);
this.logger.LogDebug("Engine stopped at: {time}",DateTimeOffset.Now);
我创建了一个带有 moq 设置的 UT 来检查这种情况:
var firstMessageStartLoggingTime = $"Engine start run at: {DateTimeOffset.Now}";
var secondMessageStoppedLoggingTime = $"Engine stopped at: {DateTimeOffset.Now}";
_mockLogger.Setup(e => e.LogDebug(firstMessageStartLoggingTime)).Verifiable();
_mockLogger.Setup(e => e.LogDebug(secondMessageStoppedLoggingTime)).Verifiable();
并收到此异常:
Message:
Moq.MockException : Mock<ILoggerAdapter<Engine>:1>:
This mock Failed verification due to the following:
ILoggerAdapter<Engine> e => e.LogDebug("Engine start run at: 6/4/2021 8:52:16 AM +03:00",[]):
This setup was not matched.
ILoggerAdapter<Engine> e => e.LogDebug("Engine stopped at: 6/4/2021 8:52:16 AM +03:00",[]):
This setup was not matched.
然后我尝试通过添加 DateTimeProvider 类来更新此案例:
public class DateTimeProvider
{
public static DateTime Today
{
get
{
if (!TodayValue.HasValue)
{
return DateTime.Today;
}
else
{
return TodayValue.Value;
}
}
}
public static DateTime Now
{
get
{
if (!NowValue.HasValue)
{
return DateTime.Now;
}
else
{
return NowValue.Value;
}
}
}
public static DateTime UtcNow
{
get
{
if (!UtcNowValue.HasValue)
{
return DateTime.UtcNow;
}
else
{
return UtcNowValue.Value;
}
}
}
internal static DateTime? TodayValue { get; set; }
internal static DateTime? NowValue { get; set; }
internal static DateTime? UtcNowValue { get; set; }
this.logger.LogDebug("Engine start run at: {time}",DateTimeOffsetProvider.Now);
this.logger.LogDebug("Engine stopped at: {time}",DateTimeOffsetProvider.Now);
并更新了 UT:
DateTime expected = DateTime.Now;
DateTimeProvider.TodayValue = expected;
var firstMessageStartLoggingTime = $"Engine start run at: {expected}";
var secondMessageStoppedLoggingTime = $"Engine stopped at: {expected}";
_mockLogger.Setup(e => e.LogDebug(firstMessageStartLoggingTime)).Verifiable();
_mockLogger.Setup(e => e.LogDebug(secondMessageStoppedLoggingTime)).Verifiable();
但错误仍然存在。 请帮助:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。