Apabila memanggil kaedah objek olok-olok, kaedah sebenar tidak akan dilaksanakan, tetapi nilai lalai jenis pulangan, seperti objek mengembalikan null, int mengembalikan 0 , dsb. Jika tidak, dengan menyatakan bila (Kaedah).thenReturn(nilai) untuk menentukan nilai pulangan kaedah. Pada masa yang sama, objek olok-olok boleh dikesan dan kaedah pengesahan boleh digunakan untuk melihat sama ada ia telah dipanggil. Objek pengintip akan melaksanakan kaedah sebenar secara lalai, dan nilai pulangan boleh ditindih melalui when.thenReturn. Ia boleh dilihat bahawa selagi olok-olok mengelak daripada melaksanakan beberapa kaedah dan terus mengembalikan nilai yang ditentukan, ia adalah mudah untuk ujian lain.
Kebergantungan yang diperlukan
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>2.23.4</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-test</artifactId> <version>2.1.13.RELEASE</version> </dependency>
Contoh kod
@RunWith(MockitoJUnitRunner.class) @SpringBootTest() public class StudentServiceTest { @InjectMocks StudentService studentService = new StudentServiceImpl(); @Mock StudentDAO studentDAO; @Before public void before(){ Mockito.doReturn(new StudentDO("张三", 18)).when(studentDAO).read(Mockito.anyString()); } @Test public void testRead(){ StudentDO read = studentService.read(""); Assert.assertNotNull(read); } }
Kebergantungan yang diperlukan
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.1.14.RELEASE</version> </dependency> <dependency> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path</artifactId> <version>2.4.0</version> </dependency>
Contoh Kod
@RunWith(MockitoJUnitRunner.class) @SpringBootTest() public class StudentControllerTest { @Resource MockMvc mockMvc; @InjectMocks StudentController studentController; @Mock StudentService studentService; @Before public void before() { mockMvc = MockMvcBuilders.standaloneSetup(studentController).build(); Mockito.doReturn(new StudentDO("张三", 18)).when(studentService).read(Mockito.anyString()); } @Test public void testRead() throws Exception { MockHttpServletRequestBuilder request = MockMvcRequestBuilders.get("/student/read/1"); mockMvc.perform(request) .andDo(print()) .andExpect(status().isOk()) .andExpect(jsonPath("$.name").value("张三")); } }
Atas ialah kandungan terperinci Cara menggunakan Mockito untuk ujian unit Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!