mockito mybatis-plus 批處理 NullPointerException

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)用,避免空指針

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容