Статьи

NetBeans 7.2 представляет TestNG

Одним из преимуществ генерации кода является возможность увидеть, как используется особая языковая функция или структура. Как я уже говорил в бета-версии NetBeans 7.2: «Быстрее и полезнее» , бета-версия NetBeans 7.2 обеспечивает интеграцию TestNG . Я не стал более подробно останавливаться на этом посте, кроме одной ссылки на эту функцию, потому что я хотел посвятить этот пост этой теме. Я использую этот пост, чтобы продемонстрировать, как NetBeans 7.2 можно использовать, чтобы помочь новичку в TestNG начать использовать этот альтернативный (для JUnit ) тестовый фреймворк.

Мастер создания файлов в NetBeans 7.2 упрощает создание пустого контрольного теста TestNG. Это демонстрируется на следующих снимках экрана, которые запускаются с помощью New File | Модульные тесты (обратите внимание, что «Новый файл» доступен в раскрывающемся меню «Файл» или при щелчке правой кнопкой мыши в окне «Проекты»).

Запуск создания тестового набора TestNG, как показано выше, приводит к следующему сгенерированному тестовому коду.

TestNGDemo.java (создан NetBeans 7.2)

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package dustin.examples;
 
import org.testng.annotations.AfterMethod;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.testng.Assert;
 
/**
 *
 * @author Dustin
 */
public class TestNGDemo
{  
   public TestNGDemo()
   {
   }
    
   @BeforeClass
   public void setUpClass()
   {
   }
    
   @AfterClass
   public void tearDownClass()
   {
   }
    
   @BeforeMethod
   public void setUp()
   {
   }
    
   @AfterMethod
   public void tearDown()
   {
   }
   // TODO add test methods here.
   // The methods must be annotated with annotation @Test. For example:
   //
   // @Test
   // public void hello() {}
}

Тест, сгенерированный NetBeans 7.2, содержит комментарии, показывающие, как методы тестирования добавляются и аннотируются (аналогично современным версиям JUnit). В сгенерированном коде также показаны некоторые аннотации для полной настройки и разрыва тестового примера и для настройки и разборки для каждого теста (аннотации аналогичны JUnit). NetBeans идентифицирует операторы импорта, которые еще не используются на данный момент ( import org.testng.annotations.Test; и import org.testng.Assert; ), но, вероятно, будут использоваться и поэтому были включены в сгенерированный код.

Я могу легко добавить метод теста в этот сгенерированный тест. Следующий фрагмент кода представляет собой метод тестирования с использованием TestNG.

testIntegerArithmeticMultiplyIntegers ()

1
2
3
4
5
6
7
8
9
@Test
public void testIntegerArithmeticMultiplyIntegers()
{
   final IntegerArithmetic instance = new IntegerArithmetic();
   final int[] integers = {4, 5, 6};
   final int expectedProduct = 2 * 3 * 4 * 5 * 6;
   final int product = instance.multiplyIntegers(2, 3, integers);
   assertEquals(product, expectedProduct);
}

Это, конечно, выглядит очень похоже на эквивалент JUnit, который я использовал для того же класса IntegerArithmetic который я использовал для тестирования иллюстраций в постах Улучшение AssertEquals с помощью JUnit и Hamcrest и встроенной поддержки Hamcrest Core Matcher в JUnit. На следующем снимке экрана показан вывод в бета-версии NetBeans 7.2, если щелкнуть правой кнопкой мыши класс тестового примера и выбрать «Выполнить файл» (Shift + F6).

Текстовый вывод прогона TestNG, представленный в бета-версии NetBeans 7.2, воспроизводится следующим.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[TestNG] Running:
  Command line suite
 
[VerboseTestNG] RUNNING: Suite: "Command line test" containing "1" Tests (config: null)
[VerboseTestNG] INVOKING CONFIGURATION: "Command line test" - @BeforeClass dustin.examples.TestNGDemo.setUpClass()
[VerboseTestNG] PASSED CONFIGURATION: "Command line test" - @BeforeClass dustin.examples.TestNGDemo.setUpClass() finished in 33 ms
[VerboseTestNG] INVOKING CONFIGURATION: "Command line test" - @BeforeMethod dustin.examples.TestNGDemo.setUp()
[VerboseTestNG] PASSED CONFIGURATION: "Command line test" - @BeforeMethod dustin.examples.TestNGDemo.setUp() finished in 2 ms
[VerboseTestNG] INVOKING: "Command line test" - dustin.examples.TestNGDemo.testIntegerArithmeticMultiplyIntegers()
[VerboseTestNG] PASSED: "Command line test" - dustin.examples.TestNGDemo.testIntegerArithmeticMultiplyIntegers() finished in 12 ms
[VerboseTestNG] INVOKING CONFIGURATION: "Command line test" - @AfterMethod dustin.examples.TestNGDemo.tearDown()
[VerboseTestNG] PASSED CONFIGURATION: "Command line test" - @AfterMethod dustin.examples.TestNGDemo.tearDown() finished in 1 ms
[VerboseTestNG] INVOKING CONFIGURATION: "Command line test" - @AfterClass dustin.examples.TestNGDemo.tearDownClass()
[VerboseTestNG] PASSED CONFIGURATION: "Command line test" - @AfterClass dustin.examples.TestNGDemo.tearDownClass() finished in 1 ms
[VerboseTestNG]
[VerboseTestNG] ===============================================
[VerboseTestNG]     Command line test
[VerboseTestNG]     Tests run: 1, Failures: 0, Skips: 0
[VerboseTestNG] ===============================================
 
===============================================
Command line suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================
 
Deleting directory C:\Users\Dustin\AppData\Local\Temp\dustin.examples.TestNGDemo
test:
BUILD SUCCESSFUL (total time: 2 seconds)

В приведенном выше примере показано, как легко начать использовать TestNG, особенно если вы переходите на TestNG из JUnit и используете бета-версию NetBeans 7.2. Конечно, в TestNG есть гораздо больше, чем это, но изучение новой инфраструктуры обычно наиболее сложно в самом начале, и NetBeans 7.2 быстро ее запускает.

Ссылка: NetBeans 7.2 Представляет TestNG от нашего партнера по JCG Дастина Маркса в блоге Inspired by Actual Events .