亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
用JUnit測試Java類
作者:網絡轉載 發布時間:[ 2014/2/26 11:54:58 ] 推薦標簽:Java類 JUnit測試 單元測試

通過方法名assertXxx你可以讓JUnit知道你想要的結果,其中Xxx是True、Fase、Equals或者其它條件。JUnit記錄assertXxx方法的通過/失敗狀態,并在執行完所有測試后反饋給你。這兒是一些JUnit中有簽名和操作描述的斷言(assert)方法:

assertTrue(String errorMessage, boolean booleanExpression): 檢查booleanExpression值是否為true。如果不是,把errorMessage添加到錯誤報告的顯示列表中。
assertFalse(String errorMessage, boolean booleanExpression): 檢查booleanExpression值是否為false。如果不是,把errorMessage添加到錯誤報告的顯示列表中。
assertEquals(String errorMessage, Object a, Object b): 檢查對象a是否等于對象b,通過equals方法,如果不是,把errorMessage添加到錯誤報告的顯示列表中。對象a是期望值,對象b是要測試的程序實際返回的值。
assertNull(String errorMessage, Object o): 檢查對象o是否為null。如果不是,把errorMessage添加到錯誤報告的顯示列表中。

要查看所有斷言方法的完整列表,請參考Assert類的javadoc文檔(http://www.junit.org/junit/javadoc/index.htm)。

你可以在整個測試代碼中隨意使用assertXxx語句,來確認你要測的代碼中某個條件結果為true(或者false,視情況而定)。

 
五、指定要運行的測試(Specifying Which Tests to Run)

要運行你的測試,你需要:
一個TestRunner類的實例。
一個測試類(例如本例的MyTestClass類)的實例,它包含你要運行的測試的。這個類必須繼承junit.framework.TestCase。
告訴這個TestRunner實例你的MyTestClass實例中哪些測試要運行的途徑。

創建TestRunner的實例和指定MyTestClass實例非常容易,你可以通過下面的命令:
java junit.textui.TestRunner MyTestClass

對別的UI可以用其相應的TestRunner代替junit.textui.TestRunner,例如AWT的junit.awtui.TestRunner和Swing的junit.swingui.TestRunner。你還要用你自己的測試類的名字替換MyTestClass。

有兩種途徑可以讓TestRunner知道你要運行MyTestClass類中的哪些測試。一個是顯式途徑,一個是默認途徑。在MyTestClass中,你可以選擇是否包含一個public static方法suite,這個方法沒有任何參數,返回Test對象。更準確地說,它返回一個實現Test接口的對象,因為Test是接口,不是類。大多數時候你都使用TestSuite和你自己的TestCase子類,TestSuite和TestCase都實現了Test接口。

如果你在MyTestClass方法中省略了suite方法,那么TestRunner通過reflection機制找到MyTestClass類中所有以“test”為前綴命名的方法,并運行它們。這是通知TestRunner要運行哪些測試的默認途徑。

如果你在MyTestClass中實現了suite方法,TestRunner調用suite方法,通過suite方法返回的Test對象,TestRunner獲悉它要進行的測試。這是顯式途徑。TestCase和TestSuite類都實現Test接口,意味著你可以只返回一個TestCase,也可以返回一個包含0到多個TestCase/TestSuite的TestSuite,這樣可以進行多個測試和層次測試。


在junit.framework.TestCase中指定要運行的測試

在TestCase中有兩種方式可以指定測試方法:一個靜態一個動態。靜態方法是重TestCase的runTest方法,在其中調用你的測試。例如:

import junit.framework.TestCase;
public class MySimpleTest extends TestCase {
  public MySimpleTest(String name) {
    super(name);
  }
  public void runTest() {
    testTurnLeft();
  }
  public void testTurnLeft() {
    ... code here ...
  }
}

有時簡單靈活的重載TestCase.runTest的方式是用一個匿名內部類。下面的代碼描述了這種方式:
TestCase testCase = new MySimpleTest("myNameForTurnLeft") {
  public void runTest() {
    testTurnLeft();
  }
}

匿名內部類讓你在實例化test類的類中重載runTest,這樣在不同的地方可以有不同的runTest實現,它們都使用MySimpleTest作為實際的測試方法。如果你在test類的suite方法中初始化它自己,這個初始化test類的類是它自己。

通過構造器的name參數可以在TestCase中動態指定測試方法。對上面的MySimpleTest類,你可以寫成:
TestCase testCase = new MySimpleTest("testTurnLeft");

因為你沒有重載runTest,TestCase類的默認實現將通過reflection找到方法testTurnLeft。你可以用任何你喜歡的名字代替“testTurnLeft”。

六、用junit.framework.TestSuite指定多層測試(Specifying a Hierarchy of Tests to Run With junit.framework.TestSuite)

TestSuite類可以把多個測試打包成一組。基本形式如下:
TestSuite testSuite = new TestSuite();
testSuite.addTest(new MySimpleTest("testTurnLeft"));
testSuite.addTest(new CalculatorTest("testIsDivisor"));
testSuite.addTest(new TestSuite(MyThirdTest.class));

前兩個addTest方法是直接調用。TestSuite.addTest方法接受實現Test接口的對象作參數。MySimpleTest和CalculatorTest類都是TestCase的子類,而TestCase實現Test接口。通過前兩個addTest方法,你只是把兩個測試方法添加到TestSuite實例要執行的測試列表中。

第三個addTest調用描述如何通過在TestSuite實例中包含TestSuite實例來創建層次測試。TestSuite類實現Test接口,所以可以作為addTest方法的參數。第三個addTest調用中,新的TestSuite對象包含MyThirdTest類所有的testXxx方法。沒有任何限制要求addTest方法中指定的TestSuite實例是單層列表,子TestSuite還可以包含子TestSuite。

上一頁1234567下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 成人免费视频播放 | 黄色三级毛片 | 亚洲 中文 欧美 日韩 在线人 | 成人观看网站a | 亚洲一区在线免费观看 | 久草黑丝 | 精品在线播放 | 欧美一区二区高清 | 手机看片国产欧美日韩高清 | 国产人成午夜免费噼啪视频 | 大学生一级毛片全黄毛片黄 | 欧美在线视频一区二区三区 | 久久99精品久久 | 天天躁日日躁狠狠躁综合 | 欧美综合在线观看 | 国产区亚洲区 | 免费看一毛一级毛片视频 | 日韩小视频在线观看 | 国产网曝手机视频在线观看 | 欧美成视频 | 青草福利视频 | 日本欧美精品 | 粉嫩极品国产在线播放 | 午夜免费看| 国产精品亚洲欧美日韩久久 | 看真人视频a级毛片 | 日本一区二区成人教育 | 天天躁夜夜躁狠狠躁2018a | 日韩在线a视频免费播放 | 欧美a欧美乱码一二三四区 欧美a在线看 | 国产一级第一级毛片 | 34看网片午夜理 | 欧美日韩加勒比一区二区三区 | 成人区在线观看免费视频 | 天天擦天天干 | 久久精品全国免费观看国产 | 国产午夜精品鲁丝片 | 性欧美video另类hd高清 | 最近最新好看的中文字幕2019 | 人人搞人人爽 | 亚洲综合影视 |