Rumah >Java >javaTutorial >Cara menggunakan Mockito untuk ujian unit Java

Cara menggunakan Mockito untuk ujian unit Java

王林
王林ke hadapan
2023-04-19 23:22:091774semak imbas

Pengenalan kepada Mockito

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.

Kes ujian perkhidmatan

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);
    }
}

Kes ujian pengawal

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam