一、idea 安裝自動化生成插件jcode5
安裝可能不成功,嘗試多次安裝;
安裝成功后,重啟idea,再次確認安裝是否成功;
二、在需要生成單元測試代碼的模塊的pom中引入依賴
......<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.3</version><relativePath /> <!-- lookup parent from repository --></parent>......<!-- 單元測試 覆蓋率 openclover --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><scope>test</scope></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-params</artifactId><scope>test</scope></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-engine</artifactId><scope>test</scope></dependency><dependency><groupId>org.mockito</groupId><artifactId>mockito-junit-jupiter</artifactId><scope>test</scope></dependency>......
三、初始化單元測試類
大概需要添加單元測試代碼的類,鼠標放在類名字出,按alt+insert,選擇jcode5;
選擇generate test class 初始化單元測試代碼;
四、剔除無用import報錯行
ctrl+alt+o
五、造數據,完善測試代碼,使得覆蓋率提升
1.有報錯信息優先處理報錯信息
2.若使用泛型類需要,處理泛型類T、 Map<K,V>、?ConsumerRecord<?, ?>、V.class等
3.完善打樁代碼when
4.調整數據文件使測試代碼可正常執行
5.存在邏輯復雜的測試方法時,且需要模擬多種數據時,可以在復制一個測試方法和測試數據文件
6.完善其他代碼
7.執行mvn test 查看測試代碼執行結果
六、修改特例
Map<K,V>可修改為
Map<String, Object>
對于模擬不來的,可以直接使用構造javabean的方式
測試目標類中 @Value注釋的屬性如何初始化
ReflectionTestUtils.setField(XXXService, "env", "prod");
測試目標類中靜態類如何初始化
try(MockedStatic<ESUtils> theMock = Mockito.mockStatic(ESUtils.class)) {theMock.when(() -> ESUtils.convertToSearchFieldsList(Mockito.any())).thenReturn(combineRule);
}try(MockedStatic<HttpUtil> theMock = Mockito.mockStatic(HttpUtil.class)) {theMock.when(() -> HttpUtil.get(anyString(), anyInt())).thenReturn("");
}