一:mock方式
- 在測試類上添加注解
@ExtendWith(MockitoExtension.class)
@MockitoSettings(strictness = Strictness.LENIENT)
- 將需要測試的類bean添加進來,該類中的其他bean也添加進來
//被測試類
@Spy
@InjectMocks
private XXXMUService service;
//測試類中添加的Autowired注解的bean
@Mock
private XXXDao xxxDao;
- 給被測試類中用到的參數(shù)、返回值類創(chuàng)建對象
XXXVO parameterVO = new XXXVO();
List<String> stringList = new ArrayList<>();
List<XXXVo> xxxList = new ArrayList<>();
- 創(chuàng)建BeforeEach和AfterEach方法,在BeforeEach方法中給參數(shù),返回值設(shè)置值
@BeforeEach
void setUp() {
stringList.add("080");
stringList.add("160");
stringList.add("257");
stringList.add("618");
XXXVo xxxVo = new XXXVo();
xxxVo.setXXX("202110");
xxxList.add(xxxVo);
parameterVO.setXXX("I");
parameterVO.setYYY("202110");
}
@AfterEach
void tearDown() {
}
- 然后在test方法中設(shè)置被測試的方法
@Test
void function() {
//使用Mockito的when方法,來設(shè)置被測試方法需要用到的方法,參數(shù)可以直接通過Mockito方法進行虛擬參數(shù)設(shè)置,然后調(diào)用設(shè)置好的返回值就可以了。
Mockito.when(xxxDao.xxx()).thenReturn(stringList );
Mockito.when(xxxDao.xXXX(Mockito.any(),Mockito.anyList())).thenReturn(xxxList );
//無返回值得可以通過字節(jié)碼對象mock方法,參數(shù)直接mock進去
Mockito.doNothing().when(Mockito.mock(對象.getClass()/類.Class)).xXXX方法(Mockito.anyList());
//調(diào)用被測試方法
service.testFunction(parameterVO);
}
二:可以檢測dao層sql的單元測試文章來源:http://www.zghlxwxcb.cn/news/detail-609503.html
- 測試類上需要添加的注解。
@RunWith(SpringRunner.class)
@SpringBootTest(classes = AppServer.class)
@TestPropertySource(properties = {
"spring.datasource.data=classpath:data-base/report/data/data-xxx.sql"})
public class XxxTest
@TestPropertySource注解中放的是sql地址
放在測試包的resources文件下
先刪除表,然后將需要的字段值添加進去文章來源地址http://www.zghlxwxcb.cn/news/detail-609503.html
- 設(shè)置參數(shù)以及進行測試
@Autowired
XxxService xxxService;
@Test
public void testXxx(){
try {
XxxParameterVO xxxParameterVO = setParameterVO();
//調(diào)用service中方法進行測試
List<xxx> xxx = xxxService.findxxxVo(xxxParameterVO );
} catch (Exception e) {
e.printStackTrace();
}
}
XxxParameterVO setParameterVO(){
設(shè)置參數(shù)
}
到了這里,關(guān)于mock寫單元測試和查數(shù)據(jù)庫的單元測試的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!