Penegasan terbina dalam JUnit 5 boleh dibahagikan kepada kategori berikut:
digunakan untuk melakukan pengesahan mudah bagi satu nilai. Contohnya:
方法 | 说明 |
---|---|
assertEquals | 判断两个对象或两个原始类型是否相等 |
assertNotEquals | 判断两个对象或两个原始类型是否不相等 |
assertSame | 判断两个对象引用是否指向同一个对象 |
assertNotSame | 判断两个对象引用是否指向不同的对象 |
assertTrue | 判断给定的布尔值是否为 true |
assertFalse | 判断给定的布尔值是否为 false |
assertNull | 判断给定的对象引用是否为 null |
assertNotNull | 判断给定的对象引用是否不为 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); } }
Jika pernyataan itu dinilai palsu, atur cara akan ditamatkan serta-merta selepas membuang pengecualian dan kod yang tinggal tidak akan dilaksanakan.
Gunakan kaedah assertArrayEquals untuk menentukan sama ada dua objek atau tatasusunan jenis primitif adalah sama.
//不相等抛出异常 @Test public void array() { assertArrayEquals(new int[]{1, 2}, new int[] {1, 2, 3}); }
kaedah assertAll() menerima berbilang contoh antara muka fungsian org.junit.jupiter.api.Executable untuk disahkan Penegasan boleh disediakan dengan mudah melalui ungkapan lambda.
//除非填写的断言都为真, 否则抛出异常 @Test public void all() { assertAll("Math", () -> assertEquals(2, 1 + 1), () -> assertTrue(1 > 5), () -> assertNotNull(null) ); }
Perhatikan bahawa jika penegasan kedua adalah palsu, penegasan ketiga masih akan dilaksanakan, yang bermaksud bahawa penegasan yang diisi dalam kaedah assertAll() b akan dilaksanakan
Dalam era JUnit 4, apabila anda ingin menguji pengecualian kaedah, masih menyusahkan untuk menggunakan pembolehubah ExpectedException yang dianotasi dengan @Rule. JUnit5 menyediakan kaedah penegasan baharu, Assertions.assertThrows(), yang boleh digunakan dengan pengaturcaraan berfungsi.
@Test public void exceptionTest() { ArithmeticException exception = Assertions.assertThrows( //当没有异常时, 扔出断言异常 ArithmeticException.class, () -> System.out.println(5/ 2)); }
JUnit5 juga menyediakan Assertions.assertTimeout() untuk menetapkan tamat masa bagi kaedah ujian.
@Test@DisplayName("超时测试")public void timeoutTest() { //如果测试方法执行时间超过设置的时间将会抛出异常 Assertions.assertTimeout(Duration.ofMillis(1000), () -> Thread.sleep(5000)); }
Gagal secara langsung ujian melalui kaedah gagal, dan kod penegasan ini tidak akan dilaksanakan
@Test public void shouldFail() { System.out.println("123456"); fail("This should fail"); System.out.println("888888"); }
Atas ialah kandungan terperinci Apakah prinsip mekanisme penegasan SpringBoot?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!