2016-11-07 10 views
1

Я использую SemanticComparison в моих модульных тестах (NUnit) и часто получают ошибки как это:NUnit: Отследить разницу между ожидаемым и фактическим в композитных результате с помощью SemanticComparison .NET библиотеки

Expected Likeness of T But was T 

Я отслеживаюсь ошибки как это раньше, так как это связано с тем, что какое-то подзадача не равна ожидаемому значению, которое я определил в своем модульном тесте. Но сообщение об ошибке просто имеет эту общую форму. И я также ничего не вижу в трассировке стека. Но я бы предположил, что библиотека содержит способ автоматического отображения свойства, которое отличается. Ручное отслеживание всех их занимает некоторое время.

Для полноты, мой код выглядит примерно так. Однако я надеюсь, что этот вопрос прочитает кто-то, знакомый с SemanticComparison (это библиотека/пакет NuGet для помощи в модульных тестах, сделанных Марком Сееманном 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); 
+1

Можете ли вы поделиться [Minimal, полный и проверяемых пример] (http://stackoverflow.com/help/mcve)? –

ответ

2

Использование

expected.ShouldEqual(actual); 

вместо

Assert.AreEqual(expected, actual); 
+0

Ничего себе, сам г-н Семанн. Это выглядит хорошо. Я проверю еще, все еще есть одна проблема. – Bart