TestNG與Junit的基本區別
自動化的框架選擇webdriver+TestNG+Ant,是因為便於Daily Build和Ant的整合,而單元測試框架選擇TestNG是由於具有以下優勢,最主要體現"直接用Excel做為資料來源"和"在xml中定義測試任務"
1.對於註解類的支援
功能 |
JUnit | TestNG |
標註為類/方法為測試類和方法 | @Test | @Test |
標註為在suite中所有測試之前執行 |
無 | @BeforeSuite |
標註為在suite中所有測試之後執行 | 無 | @AfterSuite |
標註為在測試之前執行 | 無 | @BeforeTest |
標註為在測試之後執行 | 無 |
@AfterTest |
標註為在測試Group中第一個測試方法之前執行 | 無 | @BeforeGroups |
標註為在測試Group中最後一個測試方法之後執行 | 無 | @AfterGroups |
標註為當前測試類中第一個測試方法之前執行 | @BeforeClass | @BeforeClass |
標註為當前測試類中最後一個測試方法之後執行 | @AfterClass | @AfterClass |
標註為在每次測試方法之前執行 | @Before | @BeforeMethod |
標註為在每次測試方法之後執行 | @After | @AfterMethod |
忽略某測試,讓其不執行 | @Ignore | @Test(enable=false) |
期待測試丟擲什麼異常 | @Test(expected=XXXException.class) | @Test(exceptedExceptions=XXXException.class) |
測試超時,如果測試的執行時間超過了毫秒為單位設定的時間,那麼就停止測試並且標記為失敗 |
@Test(timeout=1000) | @Test(timeout=1000) |
Setup(
) test1( ) tearDown( ) Setup( ) test2( ) tearDown( )
TestNG的執行順序:
Setup(
) test1( ) test2( ) tearDown( )
2.定義測試任務
Junit中要定義測試任務是要寫TestSuit的,居然要寫硬編碼,而TestNG全部寫在testng.xml(名字可以自定義的)中的,然後可以通過ant來呼叫。
3.測試引數化
Junit是不帶任何引數的,不論是測試方法還是配置方法,而TestNG都是可以新增引數的,有2種方法
(1)使用Parameter引數(試用的場景比較少):
public class TestNGTest6_1_0 {
@Test
@Parameters(value="number")
public void parameterIntTest(int number) {
System.out.println("Parameterized Number is : " + number);
}
}
然後,在我們的Testng.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>
我們用一個DataProvider屬性來給被測試的方法上宣告它需要的資料,然後平行的,用@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());
}
然後相應的我們用@DataProvider來標註一個方法,這個方法提供了資料:
@DataProvider(name = "Data-Provider-Function")
public Object[][] parameterIntTestProvider() {
TestNGTest6_3_0 obj = new TestNGTest6_3_0();
obj.setMsg("Hello");
obj.setNumber(123);
return new Object[][]{
{obj}
};
}
4.測試依賴性@Test
public void method1() {
System.out.println("This is method 1");
}
@Test(dependsOnMethods={"method1"})
public void method2() {
System.out.println("This is method 2");
}
自動化測試過程中的實用性不是很強,用例之間儘量保持獨立性相關推薦
TestNG與Junit的基本區別
自動化的框架選擇webdriver+TestNG+Ant,是因為便於Daily Build和Ant的整合,而單元測試框架選擇TestNG是由於具有以下優勢,最主要體現"直接用Excel做為資料來源"和"在xml中定義測試任務" 1.對於註解類的支援 功能 JUnit
TestNG 與 Junit的比較
轉自 http://www.blogjava.net/fanscial/archive/2005/12/14/23780.html 1. JDK 5 Annotations (JDK 1.4 可以用JavaDoc代替). 一個典型的Junit的測試類 i
int與Integer的區別(基本類型與復雜類型的對比)轉
數據 value 1.5 rand 雜類 多個 關鍵字 乘除 行數 基本類型,或者叫做內置類型,是JAVA中不同於類的特殊類型。 Java中的簡單類型從概念上分為四種:實數、整數、字符、布爾值。但是有一點需要說明的是,Java裏面只有八種原始類型,其列表如下: 實數:dou
frame與iframe的區別及基本用法
url resize nor ref logs 嵌套 html span 高度 frame 和 iframe 的區別 1、frame 不能脫離 frameset 單獨使用,iframe 可以; 2、frame 不能放到body中,否則將無法顯示; 3、if
GCD dispatch_source基本使用,創建GCD定時器與NSTimer的區別
pre 任務調度 cnblogs class -s ping log glob ... 可以使用GCD創建定時器 創建定時器: dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PR
基本資料型別與包裝類區別
java中八大基本資料型別: Byte,short,int,long,char,double,float,boolean 二者之間也存在一些區別: 宣告方式不同,基本型別不適合new關鍵字,而包裝型別需要使用new關鍵字來在堆中分配儲存空間; 儲存方式及位置不同,基本型別
【web前端自動化工作環境配置】6. 版本控制工具git與githup的區別與聯絡以及git的基本用法
最近專案裡面在用Git提交程式碼,剛開始的時候對這個工具也不是很瞭解,業餘時間抽空就學習了一下。Git是一個原始碼管理工具,便於大家協同開發,在一個專案中,凡是由開發人員編寫的程式碼都是原始碼,都需要被管理起來,讓原始碼容易被追溯,主要記錄每次變更了什麼,誰主導了這次的變
java基本資料型別傳遞與引用傳遞區別詳解
java的值傳遞和引用傳遞在面試中一般都會都被涉及到,今天我們就來聊聊這個問題,首先我們必須認識到這個問題一般是相對函式而言的,也就是java中的方法引數,那麼我們先來回顧一下在程式設計語言中有關引
socket與http的區別
單獨 計算機 是否 tcp協議 操作 end 不定 請求 釋放 1、TCP連接 手機能夠使用聯網功能是因為手機底層實現了TCP/IP協議,可以使手機終端通過無線網絡建立TCP連接。TCP協議可以對上層網絡提供接口,使上層網絡數據的傳輸建立在“無差別”的網絡之上。 建立起
getRequestURI()與getRequestURL()的區別
roo pub ava size header oot apach print connect 引於: http://hi.baidu.com/cloudxpc request.getRequestURI() 返回值類似:/xuejava/requestdemo.jspre
java == 與 equals的區別
rgs str test ring sys gte sta stat oid 兩者都是比較值的 equals更深層 返回的都是TRUE或者是FALSEpublic class StringTest{ public static void main(String[] a
IA64與x64的區別
體系 處理 兼容性 不能 什麽 推出 而後 位操作 指令集 說到IA-64與x86-64可能很多人會比較陌生。不知道你在下載系統的時候有沒有註意過,有的地方標註了x86/64/ia-64全版本等字樣。那x86/x64/ia-64都是什麽東西的版本呢?答案就是CPU。 系 統
JAVA學習筆記(1)——a++與++a的區別
col int 演示 opera 解析 代碼 數據 ++i div 需求:此博客用於解釋i++與++i的區別。 過程: 1、名稱解釋 ++:自增,即在原有數據基礎上+1,再賦給原有數據。 2、程序演示 (1)代碼: 1 class OperateDemo 2 { 3
JSON.parse與eval的區別
org 過濾 ocs lsp 方式 .com 為什麽 解析 數字 JSON.parse與eval和能將一個字符串解析成一個JSON對象,但還是有挺大區別。 測試代碼 var A = "{ a: 1 , b : ‘hello‘ }"; var B = "{ ‘a‘: 1
String、StringBuffer與StringBuilder之間區別 .RP
什麽 方式 tr1 abcd 為什麽 mes strong 速度 一點 最近學習到StringBuffer,心中有好些疑問,搜索了一些關於String,StringBuffer,StringBuilder的東西,現在整理一下。 關於這三個類在字符串處理中的位置不言而喻,
WPFのclipToBounds與maskToBounds的區別
family spa line rda align tex 圖層邊界 子圖 圖層 UIView.clipsToBounds : 讓子 View 只顯示父 View 的 Frame 部分,子視圖超出frame的部分不顯示,默認為NO,設置為YES就會把超出的部分裁掉; mas
(轉)String,StringBuffer與StringBuilder的區別??
我們 重載 時間 ins 對象引用 新的 new tar 你會 String 字符串常量StringBuffer 字符串變量(線程安全)StringBuilder 字符串變量(非線程安全) 簡要的說, String 類型和 StringBuffer 類型的主要性能區別其實在
dim 與 static 的區別
-i ati ace ont normal for space http img prinvate sub command1_click() dim i as string i=i+1 text0=i end sub ==================== prinva
@import指令與link的區別及二者的使用註意事項
支持 文件 asc 部分 rul xhtml 預處理器 請求 似的 首先,二者都是從外部引入css文件的方式,[email protected]/* */,且必須放在開頭部分! <link rel=‘stylesheet‘ href=‘a.css‘>
檢測某個方法是否屬於某個類中--解析php函數method_exists()與is_callable()的區別
檢查 -1 元素 高級 ech 9.png true strong 原創 php函數method_exists() 與is_callable()的區別在哪?在php面相對象設計過程中,往往我們需要在調用某一個方法是否屬於某一個類的時候做出判斷,常用的方法有 meth