Подтвердить что ты не робот

Javadoc в тестовых классах Junit?

Лучше ли использовать Javadoc комментарии в классах и методах junit? Или идея, что они должны быть настолько просты в чтении и просты, что нет необходимости составлять повествование о намерениях тестирования?

4b9b3361

Ответ 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(){


}