Cannot apply when mocking spring repository delete with Mockito
本问题已经有最佳答案,请猛点这里访问。
我在谷歌上搜索了所有我能想到的解决方案,但措辞很难。
我有一个在Spring存储库中调用delete的单元测试。回购协议定义为:
1 | public interface FileConfigurationRepository extends CasenetRepository<FileConfiguration, String> {} |
我测试的方法有以下调用:
1 | fileConfigurationRepository.delete(GlobalConfiguration.CUSTOM_LOGO_ID); |
其中globalconfiguration.custom_logo_id定义为:
1 |
所以我写了下面的模拟:
1 | Mockito.when(fileConfigurationRepository.delete(GlobalConfiguration.CUSTOM_LOGO_ID)).thenThrow(new Exception()); |
但是我得到了以下错误:
错误文本:
1 | No instance(s) of type variable(s) T exist so that void conforms to T |
不确定如何进行。
如前所述,问题实际上是返回是空的,而不是传递的参数类型。根据如何用mock i to制作mock-to-void方法,我对代码进行了如下修改:
1 | Mockito.doThrow(new RuntimeException()).when(fileConfigurationRepository).delete(GlobalConfiguration.CUSTOM_LOGO_ID); |
这解决了问题。