Unit-тесты, часть вторая. TestNG

Кто-то разбивает варёное яйцо с острого концы, а кто-то с тупого. Кто-то предпочитает использовать JUnit, а кто-то любит TestNg.

Простой тест с применением JUnit описан в первой статье цикла. Перепишу этот же тест на TestNG.

Для начала изменю записимости.

  1. Нужно добавить артефакт testng, при этом явно укажу, что JUnit за собой тащить не нужно.  Это даст нам аннтотации @Test  и ассерты
  2. Ну и powermock-у нужно сказать, что власть поменялась. Это артефакт powermock-module-testng

pom.xml теперь выглядит вот так:

    <properties>
        <powermock.version>1.6.6</powermock.version>
        <easymock.version>3.5.1</easymock.version>
        <testng.version>6.13.1</testng.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>${testng.version}</version>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.easymock</groupId>
            <artifactId>easymock</artifactId>
            <version>${easymock.version}</version>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-module-testng</artifactId>
            <version>${powermock.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-api-easymock</artifactId>
            <version>${powermock.version}</version>
        </dependency>
    </dependencies>

Теперь сам тест.

  1. @RunWith(PowerMockRunner.class) теперь не нужна, testng делает всё сам
  2. Чтобы testng сделал всё сам, класс теста должен extends PowerMockTestCase
  3. Перепиливаем импорты.

Собственно, всё. Тест корректно отрабатывает.

Исходный код  — на моём гитхабе, ветка testng.