1

我在我的单元测试(NUnit)中使用 SemanticComparison 并且经常遇到这样的错误:

Expected Likeness of T But was T

我之前跟踪过这样的错误,因为这是由于某些子属性不等于我在单元测试中定义的预期值。但是错误消息只是具有这种非常一般的形式。而且我在堆栈跟踪中也看不到任何东西。但我想该库包含以某种方式自动显示不同的属性。手动跟踪它们都需要我相当长的时间。

为了完整起见,我的代码如下所示。但是我希望熟悉 SemanticComparison 的人阅读这个问题(它是一个库/NuGet 包,用于帮助 Mark Seemann aka Ploeh 进行的单元测试。它是 AutoFixture 的一个附带项目。)。

_sut = new someService(apiKey);
var expectedResultaat = new someService {
    Prop1 = 1,
    Prop2 = 2,
}

var expected = expectedResultaat.AsSource().OfLikeness<ServiceResult>()
    .Without(i => i.Prop1)

 // Assert.
 Assert.AreEqual(expected, actual);
4

1 回答 1

2

利用

expected.ShouldEqual(actual);

代替

Assert.AreEqual(expected, actual);
于 2016-11-07T16:48:36.677 回答