天天看點

Unit Test 6--單元測試踩過的坑

大家好,我是神韻,是一個技術&生活部落客。出文章目的主要是兩個,一是好記憶不如爛筆頭,記錄總結中提高自己。二是希望我的文章可以幫到大家。歡迎來點贊打卡,你們的行動将是我無限的動力。

本篇主題是:單元測試踩過的坑

其它文章連結:

Unit Test 1–什麼是單元測試

Unit Test 2–IDEA配置并檢視單元覆寫率

Unit Test 3–編寫單元測試之前需要了解的單元測試架構Mock

Unit Test 4–自動生成單元測試插件之TestMe與Diffblue

Unit Test 5–編寫第一個單元測試

Unit Test 7–單元測試覆寫率表單生成傳遞,Jacoco的使用

1、需要測試的方法沒有傳回值

比如xxServe中的xxMethod方法,需要Mock它的行為可以通過一句代碼搞定

這種是有傳回值的:

Unit Test 6--單元測試踩過的坑

2、針對需要調第三方服務的Service

就是通過RestTemplate去調用,代碼簡單可以記錄如下,具體參數變動即可

@Mock
	RestTemplate restTemplate;
    public void testOther() {
        // 制造參數
        UnitTestRspDTO unitTestRspDTO = new UnitTestRspDTO();
        ResponseEntity<UnitTestRspDTO> responseEntity = new ResponseEntity<>(unitTestRspDTO, HttpStatus.OK);

        // 如果是三方調用,去填充參數
        Mockito.when(restTemplate.postForEntity(
                any(String.class),
                any(HttpEntity.class),
                Mockito.eq(UnitTestRspDTO.class)
        )).thenReturn(responseEntity);
        // 如果有unitTestService 服務類通過@Value("xxx") param參數,需要通過如下去注入
        ReflectionTestUtils.setField(unitTestService, "param", "xxxUrl");
        // 做真實調用 result = unitTestService.xxx()
        // 參數比對 Assert.assertEquals(xx, result);
    }
           

3、代更新…