您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
JUnit+JMockit單元測試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2014/3/26 10:11:22 ] 推薦標簽:單元測試 JUnit

  2.4 斷言
  對于需要測試的方法,用斷言來判斷其它執(zhí)行結(jié)果是否正確。
  assertEquals([Stringmessage],expected,actual)
  message是個可選的消息,將會在發(fā)生錯誤時報告這個消息。
  expected是期望值,通常都是用戶指定的內(nèi)容。
  actual是被測試的代碼返回的實際值。
  如:
  booleansuccess=update();
  assertEquals(“更新是否成功”,true,success)
  這樣,當運行update()的返回值不為true的時候,這個單元測試會失敗。
  但有些時候,我們測試的方法并沒有返回值,方法只是執(zhí)行一個動作,那么這個時候,我們不能用判斷的返回值來判斷方法是否執(zhí)行成功。
  如新建文件的方法,publicvoidcreateFile(StringfilePath),這個時候,方法并沒有返回值,我們在判斷方法是否執(zhí)行成功的時候,可以寫一個輔助方法,來檢查一下指定的文件是否新建成功了,以此來驗證createFile()的準備性。如:
  createFile(“d:/a.txt”);
  booleanexist=fileExist(“d:/a.txt”);
  assertEquals(“新建文件”,true,exist);
  3、JMockit
  當我們在編寫單元測試的時候,常常會出現(xiàn)一些如調(diào)用的方法需要其它對象提供,而這個類現(xiàn)在又不具備,如很難創(chuàng)建、沒有環(huán)境、沒有開發(fā)完等情況,這個時候,我們需要用JMockit模擬出一個類,來滿足我們的需求,來完成我們核心功能的測試。
  3.1 pom中增加JMockit的依賴
<dependency>
<groupId>jmockit</groupId>
<artifactId>jmockit</artifactId>
<version>1.0</version>
<scope>test</scope>
</dependency>
  3.2 模擬對象
  如需要測試的一個方法的一個值是配置在misInitConfig.xml中的,而misInitConfig.xml中的值需要用ReadConfInfo.getPropery()來獲取,而ReadConfInfo是在應用啟動時初始化的,這個時候并沒有web環(huán)境,也不能初始化,而我們也不需要自己手動初始化ReadConfInfo,因為我們測試的重點不是ReadConfInfo,而是我們現(xiàn)有的功能。這個時候,我們可以用JMockit模塊出ReadConfInfo,來完成此功能的測試。
/**
*模擬ReadConfInfo
*/
publicstaticvoidmockReadConfInfo(){
newMockUp<ReadConfInfo>(){
@Mock
publicStringgetPropery(StringpropertyName){
if("conf_loglevel".equals(propertyName)){
return"debug";
}elseif("conf_logfolder".equals(propertyName)){
return"log";
}else{
return"";
}
}
}
}
  在單元測試的@BeforCalss中初始化,
/**
*初始化環(huán)境
*/
@BeforeClass
publicstaticvoidinit()throwsException{
//模擬ReadConfInfo
mockReadConfInfo();
}
  這樣,我們可以在程序中使用ReadConfInfo.getPropery()來完成我們的功能了。

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