JUnit 5 內建的斷言可以分成以下幾個類別:
#用來對單一值進行簡單的驗證。如:
方法 | 說明 |
---|---|
assertEquals | |
##判斷兩個物件或兩個原始型別是否相等 | |
判斷兩個物件或兩個原始型別是否不相等 | |
判斷兩個物件參考是否指向同一個物件 | |
assertTrue |
assertFalse
判斷給定的布林值是否為false
assertNull判斷給定的物件參考是否為null判斷給定的物件參考是否不為null
JTest5
package com.limi.springboottest2; import org.junit.jupiter.api.*; import org.springframework.boot.test.context.SpringBootTest; import static org.junit.jupiter.api.Assertions.*; @SpringBootTest public class JTest5 { @Test public void simple() { assertEquals(3, 1 + 2, "simple math"); System.out.println(1); assertNotEquals(3, 1 + 1); System.out.println(2); assertNotSame(new Object(), new Object()); System.out.println(3); Object obj = new Object(); assertSame(obj, obj); System.out.println(4); assertFalse(3 > 2); System.out.println(5); assertTrue(1 < 2); System.out.println(6); assertNull(null); System.out.println(7); assertNotNull(new Object()); System.out.println(8); } }
2.陣列斷言
//不相等抛出异常 @Test public void array() { assertArrayEquals(new int[]{1, 2}, new int[] {1, 2, 3}); }
3.組合斷言
//除非填写的断言都为真, 否则抛出异常 @Test public void all() { assertAll("Math", () -> assertEquals(2, 1 + 1), () -> assertTrue(1 > 5), () -> assertNotNull(null) ); }
注意看, 第二個斷言為假,仍然會執行第三個斷言, 也就是說assertAll()方法b內填寫的斷言都會被執行判斷
###4.異常斷言######在JUnit4時期,想要測試方法的異常情況時,需要用@Rule註解的ExpectedException變數還是比較麻煩的。而JUnit5提供了一種新的斷言方式Assertions.assertThrows(),配合函數式程式設計就可以進行使用。 ###@Test public void exceptionTest() { ArithmeticException exception = Assertions.assertThrows( //当没有异常时, 扔出断言异常 ArithmeticException.class, () -> System.out.println(5/ 2)); }
@Test@DisplayName("超时测试")public void timeoutTest() { //如果测试方法执行时间超过设置的时间将会抛出异常 Assertions.assertTimeout(Duration.ofMillis(1000), () -> Thread.sleep(5000)); }
@Test public void shouldFail() { System.out.println("123456"); fail("This should fail"); System.out.println("888888"); }
以上是SpringBoot斷言機制的原理是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!