繁体   English   中英

如何正确结合使用和WhenTypeIs <DateTime> 流利的断言

[英]How to correctly combine Using and WhenTypeIs<DateTime> in Fluent Assertions

我有一个这样的对象字典: Attributes = new Dictionary<string, object>();

字典中有一个DateTime ,我正在尝试测试该DateTime是否在特定的一天,例如:

Attributes[key].ShouldBeEquivalentTo(DateTime.Now, options => options
    .Using<DateTime>(ctx =>
    {
        //throw new InvalidOperationException();
        ctx.Subject.Should().BeSameDateAs(ctx.Expectation);
    }).WhenTypeIs<DateTime>());

但是,这导致失败的断言Expected subject to be <2016-06-30 11:38:05.447>, but found <2016-06-30 10:38:05> 日期是在同一日期,所以我相信应该通过,但是断言失败了。

这使我得出结论,没有应用ctx.Subject.Should().BeSameDateAs(ctx.Expectation) 我尝试添加异常,然后进行调试,但似乎从未达到操作中的代码。

我应该期待这项工作吗? 我这样做正确吗?

永远不会到达运行中的代码,因为应该将ShouldBeEquivalentTo比较对象图(实际和预期的属性)。 Using...WhenTypeIs<DateTime>将应用于DateTime类型的属性

在您的情况下,对象是DateTime本身,因此您可以断言它确实是DateTime并链接其他必需断言:

Attributes[key].Should().BeOfType<DateTime>().Which.Should().BeSameDateAs(DateTime.Now);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM