- 0x01 下載和導入
- 0x02 Junit4注解
- 0x21 常用注解
- 0x22 執(zhí)行順序
- 0x04 常用API
- 0x41 Assert類
- 0x42 TestCase
- 0x44 TestResult
- 0x48 TestSuite
- 0x08 參數(shù)化測試
0x01 下載和導入
從官網(wǎng)上下載jnit.jar和hamcrest-core.jar兩個包枣耀,并且導入到IntellijIDE中院刁。后續(xù)使用maven雷绢,就不用那么麻煩
導包時需要注意凤类,有一個是需要靜態(tài)導入
0x02 Junit4注解
-
常用注解
@BeforeClass
注解
被@BeforeClass注解的方法會是:只被執(zhí)行一次運行junit測試類時第一個被執(zhí)行的方法
這樣的方法被用作執(zhí)行計算代價很大的任務阴颖,如打開數(shù)據(jù)庫連接筐高。被@BeforeClass 注解的方法應該是靜態(tài)的(即 static類型的).@AfterClass
注解
被@AfterClass注解的方法應是:只被執(zhí)行一次運行junit測試類是最后一個被執(zhí)行的方法
該類型的方法被用作執(zhí)行類似關(guān)閉數(shù)據(jù)庫連接的任務也拜。被@AfterClass 注解的方法應該是靜態(tài)的(即 static類型的).@Before
注解
被@Before 注解的方法應是:junit測試類中的任意一個測試方法執(zhí)行 前 都會執(zhí)行此方法
該類型的方法可以被用來為測試方法初始化所需的資源。@After
注解
被@After注解的方法應是:junit測試類中的任意一個測試方法執(zhí)行后 都會執(zhí)行此方法, 即使被@Test 或 @Before修飾的測試方法拋出異常
該類型的方法被用來關(guān)閉由@Before注解修飾的測試方法打開的資源霎肯。@Test
注解
被@Test注解的測試方法包含了真正的測試代碼擎颖,并且會被Junit應用為要測試的方法。@Test注解有兩個可選的參數(shù):expected 表示此測試方法執(zhí)行后應該拋出的異常观游,(值是異常名)
timeout 檢測測試方法的執(zhí)行時間@Ignore
這個注釋是用來忽略有關(guān)不需要執(zhí)行的測試的搂捧。如果是測試類被加上該注釋,則類中所有的測試方法都會被跳過懂缕。@Timeout
如果測試方法的執(zhí)行時間大于指定的超時參數(shù)允跑,測試方法將拋出異常,測試結(jié)果為失敗。指定的超時參數(shù)是以毫秒記.
-
執(zhí)行順序
上面的注解是按照一個流程來執(zhí)行的,如下@BeforeClass
@before
@test
@after
@AfterClass 代碼
-
執(zhí)行結(jié)果
0x04 用API
-
0x41 Assert類
Junit 4 斷言方法允許檢查測試方法的期望結(jié)果值和真實返回值
|方法|描述|
|----|----|
|assertNull(java.lang.Object object)|檢查對象是否為空
|assertNotNull(java.lang.Object object)|檢查對象是否不為空
|assertEquals(long expected, long actual)|檢查long類型的值是否相等
|assertEquals(double expected, double actual, double delta)|檢查指定精度的double值是否相等
|assertFalse(boolean condition)|檢查條件是否為假
|assertTrue(boolean condition)|檢查條件是否為真
|assertSame(java.lang.Object expected, java.lang.Object actual)|檢查兩個對象引用是否引用同一對象(即對象是否相等)
|assertNotSame(java.lang.Object unexpected, java.lang.Object actual)|檢查兩個對象引用是否不引用統(tǒng)一對象(即對象不等) -
代碼
-
執(zhí)行結(jié)果
全部通過
0x42 TestCase
0x44 TestResult
-
0x48 TestSuite套件測試
測試套件意味著捆綁幾個單元測試用例并且一起執(zhí)行他們
當運行時聋丝,所有包含在@SuiteClasses注解內(nèi)的所有測試類都會被執(zhí)行荤崇。- 注解
@RunWith(Suite.class)
@SuiteClasses(TestClass1.class, TestClass2.class)
- 注解