NUnit Assert AreEqual строки diff
Я пишу модульные тесты для генератора кода, и большинство моих тестов сравнивают выходные данные, которые занимают несколько строк, с некоторым золотым выводом. В настоящее время я сравниваю результаты с Assert.AreEqual(string, string)
который отображает контекст вокруг первого различия.
К сожалению, это не очень полезно. В идеале, я хотел бы получить разницу результатов. Каков наилучший способ сделать это? Мой текущий план - записать сгенерированный код в файл и вызвать исполняемый файл, на который ссылается DIFFTOOL
env var (еще diff.exe
от PATH
иначе поведение по умолчанию NUnit) и вызов Assert.Fail()
с соответствующим сообщением.
1 ответ
Вы можете исключить отсечение длинных строк, указав .NoClip
в качестве модификатора EqualConstraint
, Это требует от вас перейти от наследства Assert.AreEqual
использовать модель ограничения утверждения:
C#
Assert.That(actual, Is.EqualTo(expected).NoClip);
Это даст вам полное значение обеих строк, но может быть трудно прочитать без переформатирования.
Мы давно были заинтересованы в улучшении отображения различий между двумя длинными строками. Приходите и сделайте пиар!:-)