Лучше ли использовать Javadoc комментарии в классах и методах junit? Или идея, что они должны быть настолько просты в чтении и просты, что нет необходимости составлять повествование о намерениях тестирования?
Javadoc в тестовых классах Junit?
Ответ 1
Я лично использую комментарии javadoc, поскольку я нахожу, что они увеличивают беспорядок на экране. Если я могу назвать класс, функцию или переменную более понятным образом, я предпочту комментарий. Отличная книга для чтения по этой теме: Clean Code от Роберта К. Мартина (a.k.a Дядя Боб).
Мое личное предпочтение состоит в том, чтобы сделать как класс, так и методы самоописательными.
class ANewEventManager {
@Test
public void shouldAllowClassesToSubscribeToEvents() {
/* Test logic here */
}
}
Одно из преимуществ этого подхода состоит в том, что на выходе junit легко увидеть, что не удается выполнить просмотр кода.
Ответ 2
Я использую Javadoc в своих тестах много. Но это становится очень полезным, когда вы добавляете свой собственный тег в свой javadoc.
Основная цель здесь - сделать тест понятным для других разработчиков, способствующих вашему проекту. И для этого нам даже не нужно генерировать фактический javadoc.
/**
* Create a valid account.
* @result Account will be persisted without any errors,
* and Account.getId() will no longer be <code>null</code>
*/
@Test
public void createValidAccount() {
accountService.create(account);
assertNotNull(account.getId());
}
Далее нам нужно будет уведомить наш плагин Javadoc в maven, добавив новый тег.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.8</version>
<configuration>
<tags>
<tag>
<name>result</name>
<placement>a</placement>
<head>Test assertion :</head>
</tag>
</tags>
</configuration>
</plugin>
</plugins>
</build>
И теперь все, что осталось сделать, это вызвать наш плагин maven.
javadoc:test-javadoc (or javadoc:test-aggregate for multi-module projects)
Это довольно простой пример, но при выполнении более сложных тестов невозможно описать тесты, просто используя имя самоописательного метода.
Ответ 3
Мне также нравятся комментарии в UT, это помогает понять пример использования в секундах.
Я создал небольшую библиотеку для включения описаний в стеке любого отчета, любой, кто проверяет отчеты, может легко попасть в проблему.
Название библиотеки - Frutilla, не стесняйтесь использовать ее https://github.com/ignaciotcrespo/frutilla
Ответ 4
/**
* Test Div two numbers
*
* Given number one and number Two.
* When the two numbers are divided
* Then returns the result of the division
*
* @throws java.lang.ArithmeticException when trying to divide between zero*/
@Test
public void testDiv(){
}