簡體   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