使用TestNG进行单元测试

TestNG简介

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

Annotation

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

范例:

@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));
}

你可能感兴趣的:(#,测试,单元测试,集成测试,testNG)