利用TestNG进行单元测试

Author Avatar
子语 2017 - 09 - 26
  • 在其它设备中阅读本文章

TestNG简介

TestNG是一个用来简化广泛的测试需求的测试框架,从单元测试到集成测试。

Annotation

Annotation 作用
@BeforeSuite 被注释的方法将在所有测试运行前运行
@AfterSuite 被注释的方法将在所有测试运行后运行
@BeforeTest 被注释的方法将在测试运行前运行
@AfterTest 被注释的方法将在测试运行后运行
@BeforeGroups 被注释的方法将在gourp中方法运行前运行
@AfterGroups 被注释的方法将在gourp中方法运行后运行
@BeforeClass 被注释的方法将在当前类的第一个方法运行前运行
@AfterClass 被注释的方法将在当前类的所有方法运行后运行
@BeforeMethod 被注释的方法将在每一个方法运行前运行
@AfterMethod 被注释的方法将在每一个方法运行后运行
@DataProvider 被注释的方法用于为其他方法提供数据
@Factory 被标记的方法作为一个返回对象的工厂,这些对象将被TestNG作为测试类,该返回必须返回Object[]
@Par##ameters 传递参数给测试方法

使用TestNG进行单元测试

@Test()  // Test中所有方法变为测试方法
public class Test {

	@Test(enable = false)  // 该注释后,test1()测试时被忽略,相当于普通方法
	public void test1(){}
    
    @BeforeTest()          // 该注释后,test3(),test4()执行前,test2()先执行
	public void test2(){}

    @
	public void test3(){}

	public void test4(){}
}

测试中的一些小问题

1、匿名JSON节点验证:

[
	{
		"name":"Tom",
		"age":12
	},
	{
		"name":"Jane",
		"age":18
	}
]

对于上述JSON的验证代码如下:

public void method_name() {
    given().
            header("Authorization", "token " + Config.getToken()).
    when().
            get(url).
    then().
            statusCode(200).
            body("[0].name", equalTo("正常")).
            body("[0].age", greaterThanOrEqualTo(0));
}

This blog is under a CC BY-NC-SA 3.0 Unported License
本文链接:http://yov.oschina.io/article/测试/Test/利用TestNG进行单元测试/