NUnit: отслеживание разницы между ожидаемым и фактическим в составном результате с использованием библиотеки SemanticComparison .NET
Я использую SemanticComparison в своих модульных тестах (NUnit) и часто получаю такие ошибки:
Expected Likeness of T But was T
Я отслеживал подобные ошибки раньше, так как это связано с тем, что некоторые свойства не совпадали с ожидаемым значением, которое я определил в своем модульном тесте. Но сообщение об ошибке просто имеет очень общую форму. И я тоже ничего не вижу в трассировке стека. Но я бы предположил, что библиотека содержит какой-то способ автоматически показывать другое свойство. Ручное отслеживание их всех занимает у меня довольно много времени.
Для полноты моего кода это что-то вроде ниже. Тем не менее, я надеюсь, что этот вопрос прочитает кто-то, знакомый с SemanticComparison (это пакет библиотеки /NuGet для помощи в модульных тестах, выполненных Марком Симэнном, иначе 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 ответ
Использование
expected.ShouldEqual(actual);
вместо
Assert.AreEqual(expected, actual);