КонтекстКак реализовать XUnit описательное сообщение Assert?
в XUnit GitHub Я нашел это: Add Assert.Equal(expected, actual, message) overload #350(так разработчик обратиться за несуществующую перегрузку ниже)
Цитаты из ответа:
Мы верующий в самодокументирующий код; который включает ваши утверждения.
(так что команда XUnit отвергает)
ОК, я получил его. Я также считаю, что сам документирующий код. Тем не менее я не могу найти этот случай использования:
Sample
// Arrange
// Create some external soap service client and its wrapper classes
// Act
// client.SomeMethod();
// Assert
// Sorry, soap service's interface, behaviour and design is *given*
// So I have to check if there is no Error, and
// conveniently if there is, then I would like to see it in the assertion message
Assert.Equal(0, client.ErrorMessage.Length); // Means no error
// I would like to have the same result what would be the following *N*U*n*i*t* assert:
// Assert.AreEqual(0, client.ErrorMessage.Length, client.ErrorMessage); // Means no error
Вопрос
Как я могу реализовать описательное сообщение утверждать, в данном случае в XUnit, которые до сих пор не имеет такого перегрузка?
Непонятно, в чем проблема. Почему вы не просто используете 'Assert.AreEqual (0, client.ErrorMessage.Length, client.ErrorMessage);' как вы указали в комментарии? – Kritner
В XUnit такой перегрузки нет. Это вызов NUnit. Пожалуйста, ознакомьтесь с самым стартовым предложением: разработчик запрашивает такую перегрузку, а команда XUnit отвергает из-за цитирования «Мы верю в самодокументирующий код, который включает ваши утверждения» –
@ g.pickardou, Почему бы не использовать предложения предоставляется по ссылке. Подобно свободным утверждениям или создайте собственное утверждение, которое обертывает «Assert.True» или «Assert.False», которые остались с перегрузками сообщений. Это было указано ниже. Вы можете предоставлять сообщения Assert.True и .False.Если вы просто не можете жить без сообщений (и отказываться использовать другое утверждение), вы всегда можете вернуться к: Assert.True (number == 2, «Это мое сообщение»); ' – Nkosi