mybatis-plus 中的批處理繼承自ServiceImpl<M extends BaseMapper<T>, T>
mapper 中沒有批處理的接口,所以處理批處理,比較好的方法是
public class RundleService extends ServiceImpl<RundleMapper, undle>{
public void removeByIService() {
remove(null); //remove方法來自于ServiceImpl中
}
}
對(duì) removeByIService()這個(gè)方法執(zhí)行mockito 單元測(cè)試測(cè)試 ,會(huì)報(bào)空指針錯(cuò)誤。猜測(cè)是拿不到ServiceImpl中的方法實(shí)現(xiàn)導(dǎo)致的
解決辦法:
@Test
public void testRemove() {
RundleService spy = spy(rundleService);
Mockito.doNothing().when(spy).removeByIService();
//這段代碼的意思是執(zhí)行 removeByIService時(shí)候,跳過去,不執(zhí)行真實(shí)的removeByIService方法,且removeByIService()方法返回值需要為void
spy.removeByIService();//這里需要手動(dòng)調(diào)用一次,否則不生效,還是會(huì)執(zhí)行原來的方法
}
以上方法可以繞過對(duì)remove的調(diào)用,避免空指針