JUnit的各种断言
JUnit為我們提供了一些輔助函數(shù),他們用來幫助我們確定被測(cè)試的方法是否按照預(yù)期的效果正常工作,通常,把這些輔助函數(shù)稱為斷言。下面我們來介紹一下JUnit的各種斷言。
斷言是編寫測(cè)試用例的核心實(shí)現(xiàn)方式,即期望值是多少,測(cè)試的結(jié)果是多少,以此來判斷測(cè)試是否通過。
斷言核心方法
assertArrayEquals(expecteds, actuals) 查看兩個(gè)數(shù)組是否相等。
assertEquals(expected, actual) 查看兩個(gè)對(duì)象是否相等。類似于字符串比較使用的equals()方法
assertNotEquals(first, second) 查看兩個(gè)對(duì)象是否不相等。
assertNull(object) 查看對(duì)象是否為空。
assertNotNull(object) 查看對(duì)象是否不為空。
assertSame(expected, actual) 查看兩個(gè)對(duì)象的引用是否相等。類似于使用“==”比較兩個(gè)對(duì)象
assertNotSame(unexpected, actual) 查看兩個(gè)對(duì)象的引用是否不相等。類似于使用“!=”比較兩個(gè)對(duì)象
assertTrue(condition) 查看運(yùn)行結(jié)果是否為true。
assertFalse(condition) 查看運(yùn)行結(jié)果是否為false。
assertThat(actual, matcher) 查看實(shí)際值是否滿足指定的條件
fail() 讓測(cè)試失敗
注解
@Before 初始化方法
@After 釋放資源
@Test 測(cè)試方法,在這里可以測(cè)試期望異常和超時(shí)時(shí)間
@Ignore 忽略的測(cè)試方法
@BeforeClass 針對(duì)所有測(cè)試,只執(zhí)行一次,且必須為static void
@AfterClass 針對(duì)所有測(cè)試,只執(zhí)行一次,且必須為static void
@RunWith 指定測(cè)試類使用某個(gè)運(yùn)行器
@Parameters 指定測(cè)試類的測(cè)試數(shù)據(jù)集合
@Rule 允許靈活添加或重新定義測(cè)試類中的每個(gè)測(cè)試方法的行為
@FixMethodOrder 指定測(cè)試方法的執(zhí)行順序
一個(gè)測(cè)試類單元測(cè)試的執(zhí)行順序?yàn)?#xff1a;
@BeforeClass –> @Before –> @Test –> @After –> @AfterClass
每一個(gè)測(cè)試方法的調(diào)用順序?yàn)?#xff1a;
@Before –> @Test –> @After
1、assertEquals
函數(shù)原型1:assertEquals([String message],expected,actual)
參數(shù)說明:
??message是個(gè)可選的消息,假如提供,將會(huì)在發(fā)生錯(cuò)誤時(shí)報(bào)告這個(gè)消息。
expected是期望值,通常都是用戶指定的內(nèi)容。
? actual是被測(cè)試的代碼返回的實(shí)際值。
例:assertEquals("equals","1","1");
函數(shù)原型2:assertEquals([String message],expected,actual,tolerance)
參數(shù)說明:
? message是個(gè)可選的消息,假如提供,將會(huì)在發(fā)生錯(cuò)誤時(shí)報(bào)告這個(gè)消息。
expected是期望值,通常都是用戶指定的內(nèi)容。
actual是被測(cè)試的代碼返回的實(shí)際值。
tolerance是誤差參數(shù),參加比較的兩個(gè)浮點(diǎn)數(shù)在這個(gè)誤差之內(nèi)則會(huì)被認(rèn)為是相等的。
例:assertEquals ("yes",5.8,11.0/2.0,0.5);
2、assertTrue
函數(shù)原型:assertTrue ([String message],Boolean condition)
參數(shù)說明:
????message是個(gè)可選的消息,假如提供,將會(huì)在發(fā)生錯(cuò)誤時(shí)報(bào)告這個(gè)消息。
? ? ?condition是待驗(yàn)證的布爾型值。
該斷言用來驗(yàn)證給定的布爾型值是否為真,假如結(jié)果為假,則驗(yàn)證失敗。當(dāng)然,更有驗(yàn)證為假的測(cè)試條件:
? ?函數(shù)原型:assertFalse([String message],Boolean condition)
? ? ? 該斷言用來驗(yàn)證給定的布爾型值是否為假,假如結(jié)果為真,則驗(yàn)證失敗。
? ? ? ?例: assertTrue("true",1==1);
? ? ? ? ? assertFalse("false",2==1);
3、assertNull
函數(shù)原型:assertNull([String message],Object object)
參數(shù)說明:
? ?message是個(gè)可選的消息,假如提供,將會(huì)在發(fā)生錯(cuò)誤時(shí)報(bào)告這個(gè)消息。
object是待驗(yàn)證的對(duì)象。
該斷言用來驗(yàn)證給定的對(duì)象是否為null,假如不為null,則驗(yàn)證失敗。相應(yīng)地,還存在能夠驗(yàn)證非null的斷言:
函數(shù)原型:assertNotNull([String message],Object object)
該斷言用來驗(yàn)證給定的對(duì)象是否為非null,假如為null,則驗(yàn)證失敗。
例:assertNull("null",null);
? ?assertNotNull("not null",new String());
4、assertSame
函數(shù)原型:assertSame ([String message], expected,actual)
參數(shù)說明:
? message是個(gè)可選的消息,假如提供,將會(huì)在發(fā)生錯(cuò)誤時(shí)報(bào)告這個(gè)消息。
expected是期望值。
actual是被測(cè)試的代碼返回的實(shí)際值。
該斷言用來驗(yàn)證expected參數(shù)和actual參數(shù)所引用的是否是同一個(gè)對(duì)象,假如不是,則驗(yàn)證失敗。相應(yīng)地,也存在驗(yàn)證不是同一個(gè)對(duì)象的斷言:
函數(shù)原型:assertNotSame ([String message], expected,actual)
該斷言用來驗(yàn)證expected參數(shù)和actual參數(shù)所引用的是否是不同對(duì)象,假如所引用的對(duì)象相同,則驗(yàn)證失敗。
例:assertSame("same",2,4-2);
? ?assertNotSame("not same",2,4-3);
5、Fail
函數(shù)原型:Fail([String message])
參數(shù)說明:
? ?message是個(gè)可選的消息,假如提供,將會(huì)在發(fā)生錯(cuò)誤時(shí)報(bào)告這個(gè)消息。
該斷言會(huì)使測(cè)試立即失敗,通常用在測(cè)試不能達(dá)到的分支上(如異常)。
轉(zhuǎn)載于:https://blog.51cto.com/zlfwmm/1761751
總結(jié)
以上是生活随笔為你收集整理的JUnit的各种断言的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Chrome插件会干坏事儿的
- 下一篇: Hdu 2089-不要62 数位dp