您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源單元測(cè)試工具 > TestNG
JUnit和TestNG的區(qū)別
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2014/8/18 14:36:36 ] 推薦標(biāo)簽:TestNG

  網(wǎng)上看了一篇英文帖子,講解JUnitTestNG框架的區(qū)別,挺好的,我這里翻譯下。
  1.對(duì)于注解類的支持

  2.測(cè)試參數(shù)化
  對(duì)于TestNG和JUnit都有不同的參數(shù)化設(shè)定功能,可是表現(xiàn)形式不同。參數(shù)化設(shè)定意味著當(dāng)運(yùn)行測(cè)試的時(shí)候,參數(shù)可以從外部傳入到這個(gè)測(cè)試單元中。
  對(duì)于TestNG來說,要2部分,一是當(dāng)構(gòu)造測(cè)試代碼時(shí)候,要用@Parameters(value=XXX)來表示這個(gè)測(cè)試需要什么參數(shù),這樣的優(yōu)點(diǎn)是可以讓測(cè)試更加靈活并且可以根據(jù)不同的參數(shù)來得到不同的期望結(jié)果,比如:
public class TestNGTest6_1_0 {
@Test
@Parameters(value="number")
public void parameterIntTest(int number) {
System.out.println("Parameterized Number is : " + number);
}
}
  然后,在我們的XML文件中,我們把參數(shù)的具體值設(shè)置進(jìn)來,如下:
<!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>
  那么,如果我們要給的參數(shù)比較復(fù)雜,我們無法用一個(gè)簡(jiǎn)單的String或者 原子類型在XML文件”推“給測(cè)試方法,那么怎么辦呢?這時(shí)候,我們要用”拉“模型了,我們用一個(gè)DataProvider屬性來給被測(cè)試的方法上聲明它需要的數(shù)據(jù),然后平行的,用@DataProvider注解來標(biāo)注一個(gè)方法,讓這個(gè)方法的返回值返回具體的數(shù)據(jù),這樣我們2個(gè)拼接下完美了。
  比如說:下面代碼聲明我們的測(cè)試類需要一個(gè)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());
}

上一頁12下一頁
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd