Rumah > Java > javaTutorial > teks badan

Cara menggunakan Mockito untuk ujian unit Java

王林
Lepaskan: 2023-04-19 23:22:09
ke hadapan
1740 orang telah melayarinya

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>
Salin selepas log masuk

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);
    }
}
Salin selepas log masuk

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>
Salin selepas log masuk

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("张三"));
    }

}
Salin selepas log masuk

Atas ialah kandungan terperinci Cara menggunakan Mockito untuk ujian unit Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan