Необходима ли сводка в методе unit test
Поскольку присвоение имени unit test делает его цель более значимой, необходимо ли добавить сводку к методу unit test?
Пример:
/// <summary>
/// Check the FormatException should be thrown when a give country data line contains a invalid number.
/// </summary>
[TestMethod]
public void FormatException_Should_Thrown_When_Parse_CountryLine_Containing_InvalidNumber()
{
...
}
Ответы
Ответ 1
Я думаю, что длинное описательное имя более важно, чем комментарий XML. Поскольку unit test не будет частью API, вам не нужен комментарий XML.
Пример:
[TestMethod]
public void FormatException_Should_Thrown_When_Parse_CountryLine_Containing_InvalidNumber()
{
...
}
более полезен, чем:
///<summary>
/// Exception Should Thrown When Parse CountryLine Containing InvalidNumber
///</summary>
[TestMethod]
public void Test42()
{
...
}
XML-комментарии должны использоваться для документирования API-интерфейсов и фреймворков.
Ответ 2
Я действительно предпочитаю использовать атрибут DescriptionAttribute над сводным тегом. Причина в том, что значение атрибута Description будет отображаться в файле результатов. Это облегчает понимание сбоев, когда вы просто смотрите на файл журнала
[TestMethod,Description("Ensure feature X doesn't regress Y")]
public void TestFeatureX42() {
..
}
Ответ 3
Лично я стараюсь сделать тесты достаточно простыми, чтобы прочитать, что документация будет излишней. Я использую встроенные комментарии в методе тестирования, чтобы объяснить, почему я делаю что-то конкретным образом, а не то, что я делаю.
Ответ 4
Не нужно, но если вы чувствуете, что комментарии XML добавляют значение выше и выше самого имени unit test (которое выглядит как всеобъемлющее), вы будете делать другим разработчикам сервис.
Если сводка по существу является прямым дубликатом имени метода unit test, то я думаю, что это перебор.
Ответ 5
В приведенном выше примере я бы сказал, что это не обязательно, если вы не используете инструмент, который извлекает документацию из источника (например, javadoc или что-то еще).
Обычное эмпирическое правило состоит в том, что в коде говорится, что вы делаете, и в комментарии говорится, почему, но так как имя настолько многословное (что, я думаю, все в порядке, поскольку никто никогда не должен его вводить) Не думаю, что комментарий вносит свой вклад.
Ответ 6
Необходимо добавить резюме, когда сводка может предоставить дополнительную информацию, которая может/должна быть закодирована в имени метода. Обратите внимание, что когда я говорю "необходимо" при обращении к какой-либо документации, я имею в виду "необходимо передать 100% необходимого контекста/деталей/нюансов новому кодеру, наследующему проект, или вам самому через 5 лет".
Ответ 7
Комментарий XML совершенно не нужен, если у вас есть описательное имя метода. И это необходимо для методов единичного тестирования.
Вы уже на правильном пути, имея имя описательного метода тестирования. (Многие гибкие и TDD-практики считают, что метод тестирования должен включать "должен", например, как показано в ссылку на текст в этом сообщении в блоге.
Лично мне нравятся имена методов вроде этого:
MyClass_OnInvalidInput_ShouldThrowFormatException()
Но это только мои личные предпочтения.
Ответ 8
Если вы считаете, что это лучшее использование вашего времени, сделайте это, иначе нет. Я бы не хотел.