Junit和testNg的区别

1.对于注解类的支持

功能   junit            testng
(1)注册为类/方法为测试类和方法       @Test                     @Test
(2)注释为在suite中所有测试之前                              @BeforeSuite
运行 
(3)标注为在suite中所有测试之后                               @AfterSuite
运行
(4)注册为在测试之前运行                                   @BeforeTest
(5)注册为在测试之后运行                                 @AfterTest
(6)标注为在测试group中第一个测                              @BeforeGroups
试方法之前运行
(7)标注为在测试group中最后一个                               @AfterGroups
测试方法之后运行
(8)标注为在测试类中第一个测试   @BeforeClass       @BeforeClass
方法之前运行
(9)标注为在测试类中最后一个测   @AfterClass                  @AfterClass
试方法之后运行
(10)标注为在每次测试方法之前运       @Before       @BeforeMethod
(11)标注为在每次测试方法之后运   @After        @AfterMethod
(12)忽略某测试,让其不执行   @Ignore                   @Test(enable=false)
(13)期待测试抛出什么异常  @Test(expected=xxxException.class) @Test(exceptedException=xxxException.class)
(14)测试超时,如果测试的执行时  @Test(timeout=1000)           @Test(timeout=1000)
间超时了毫秒为单位设置的时间,
那么就停止测试并且标记为失败

2.测试参数化
  对于TestNG和JUnit都有不同的参数化设定功能,可是表现形式不同。参数化设定意味着当运行测试的时候,参数可以从外部传入到这个测试单元中。
  对于TestNG来说,要2部分,一是当构造测试代码时候,要用@Parameters(value=XXX)来表示这个测试需要什么参数,这样的优点是可以让测试更加灵活并且可以根据不同的参数来得到不同的期望结果,比如:
public class TestNGTest6_1_0 {
@Test
@Parameters(value="number")
public void parameterIntTest(int number) {
System.out.println("Parameterized Number is : " + number);
}
}
  然后,在我们的XML文件中,我们把参数的具体值设置进来,如下:
<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
<suite name="My test suite">
<test name="testing">
<parameter name="number" value="2"/>
<classes>
<class name="com.fsecure.demo.testng.TestNGTest6_0" />
</classes>
</test>
</suite>
  那么,如果我们要给的参数比较复杂,我们无法用一个简单的String或者 原子类型在XML文件”推“给测试方法,那么怎么办呢?这时候,我们就要用”拉“模型了,我们用一个DataProvider属性来给被测试的方法上声明它需要的数据,然后平行的,用@DataProvider注解来标注一个方法,让这个方法的返回值返回具体的数据,这样我们2个拼接下就完美了。
  比如说:下面代码声明我们的测试类需要一个DataProvider:
@Test(dataProvider = "Data-Provider-Function")
public void parameterIntTest(TestNGTest6_3_0 clzz) {
System.out.println("Parameterized Number is : " + clzz.getMsg());
System.out.println("Parameterized Number is : " + clzz.getNumber());
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值