我在我的单元测试(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);