![](/img/trans.png)
[英]Fluent Assertions ShouldBeEquivalentTo always passes with different properties
[英]Fluent Assertions - Overriding comparison in ShouldBeEquivalentTo()
我有以下DTO:
public class Dto
{
public DateTime Date { get; set; }
}
我試圖根據FA維基使用這種語法覆蓋屬性的比較:
public void Override_test()
{
// Arrange
var actual = new Dto { Date = DateTime.Now };
var expected = new Dto { Date = DateTime.Now };
// Act
// Assert
actual.ShouldBeEquivalentTo(expected, options =>
options.Using<DateTime>(x => x.Subject.Should().BeCloseTo(DateTime.Now)));
}
但是測試沒有編譯。 我收到此錯誤:
Cannot implicitly convert type 'FluentAssertions.Equivalency.EquivalencyAssertionOptions<FluentAssertions.ShouldBeEquivalentTo.Override.Dto>.Restriction<System.DateTime>' to 'FluentAssertions.Equivalency.EquivalencyAssertionOptions<FluentAssertions.ShouldBeEquivalentTo.Override.Dto>'
任何人都可以建議正確的語法嗎?
你必須告訴FA時使用的是Using
使用建築WhenTypeIs<DateTime>()
換一種說法:
actual.ShouldBeEquivalentTo(expected, options =>
options.Using<DateTime>(x => x.Subject.Should().BeCloseTo(DateTime.Now)).WhenTypeIs<DateTime>());
但是,我建議不要依賴DateTime.Now
太多了。 相反,考慮像Ayende Rahien中提出了使用的東西這個文章。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.