TestNG

来源:互联网 发布:知茵女装是品牌吗 编辑:程序博客网 时间:2024/05/16 07:20

一、pom.xml配置

<dependency>            <groupId>org.testng</groupId>            <artifactId>testng</artifactId>            <version>6.8.7</version>            <scope>test</scope>        </dependency>
<dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>3.8.1</version>            <scope>test</scope>        </dependency>

以下是TestNG支持的注释列表:

注解描述@BeforeSuite在该套件的所有测试都运行在注释的方法之前,仅运行一次。@AfterSuite在该套件的所有测试都运行在注释方法之后,仅运行一次。@BeforeClass在调用当前类的第一个测试方法之前运行,注释方法仅运行一次。@AfterClass在调用当前类的第一个测试方法之后运行,注释方法仅运行一次@BeforeTest注释的方法将在属于<test>标签内的类的所有测试方法运行之前运行。@AfterTest注释的方法将在属于<test>标签内的类的所有测试方法运行之后运行。@BeforeGroups配置方法将在之前运行组列表。 此方法保证在调用属于这些组中的任何一个的第一个测试方法之前不久运行。@AfterGroups此配置方法将在之后运行组列表。该方法保证在调用属于任何这些组的最后一个测试方法之后不久运行。@BeforeMethod注释方法将在每个测试方法之前运行。@AfterMethod注释方法将在每个测试方法之后运行。@DataProvider标记一种方法来提供测试方法的数据。 注释方法必须返回一个Object [] [],其中每个Object []可以被分配给测试方法的参数列表。 要从该DataProvider接收数据的@Test方法需要使用与此注释名称相等的dataProvider名称。@Factory将一个方法标记为工厂,返回TestNG将被用作测试类的对象。 该方法必须返回Object []@Listeners定义测试类上的侦听器。@Parameters描述如何将参数传递给@Test方法。@Test将类或方法标记为测试的一部分。

1.

1.基本使用:

public class TestDBConnection {    @Test    public void runOtherTest1() {        System.out.println("@Test - runOtherTest1");    }    @Test    public void runOtherTest2() {        System.out.println("@Test - runOtherTest2");    }}
2.测试异常:

public class TestCheckedException {    OrderBo orderBo;    Order data;    @BeforeTest    void setup() {        orderBo = new OrderBo();        data = new Order();        data.setId(1000);        data.setCreatedBy("maxsu");    }    @Test(expectedExceptions = OrderSaveException.class)    public void throwIfOrderIsNull() throws OrderSaveException {        orderBo.save(null);    }    /*     * Example : Multiple expected exceptions Test is success if either of the     * exception is thrown     */    @Test(expectedExceptions = { OrderUpdateException.class, OrderNotFoundException.class })    public void throwIfOrderIsNotExists() throws OrderUpdateException, OrderNotFoundException {        orderBo.update(data);    }}
3.如果使用@Test(enabled = false)注释在测试方法上,则会绕过这个未准备好测试的测试用例。

4.超时测试:

@Test(timeOut = 1000)    public void testThisShouldFail() {        while (true){            // do nothing        }    }