首頁 > Java > java教程 > 主體

Java單元測試Mockito如何用

王林
發布: 2023-04-19 23:22:09
轉載
1606 人瀏覽過

Mockito簡介

    呼叫mock物件的方法時,不會執行真實的方法,而是傳回類型的預設值,如object回傳null, int回傳0等,否則透過指定when (方法).thenReturn(value)來指定方法的回傳值。同時mock物件可以進行追蹤,使用verify方法看是否已經被呼叫過。而spy對象,預設會執行真實方法,返回值可以透過when.thenReturn進行覆寫。可見mock只要避開了執行一些方法,直接回傳指定的值,方便做其他測試。

Service測試案例

需要的依賴

  
            junit
            junit
            4.12
            test
        
        
            org.mockito
            mockito-core
            2.23.4
            test
        
        
            org.springframework.boot
            spring-boot-test
            2.1.13.RELEASE
        
登入後複製

程式碼範例

@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);
    }
}
登入後複製

Controller測試案例

需要的依賴


            org.springframework
            spring-test
            5.1.14.RELEASE
        
        
            com.jayway.jsonpath
            json-path
            2.4.0
        
登入後複製

程式碼範例

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

}
登入後複製

以上是Java單元測試Mockito如何用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!