[英]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.