我正在与JUnit和Mockito合作进行一些单一测试。我想通过使用 Mockito.doThrow()处理异常情况,并且我已经在另一个测试中使用了它,并且它以最好的方式工作。 现在我有:
Assigned newAssigned = new Assigned();
Mockito.doThrow(new SdkFault()).when(Api).addLicenseAssigned("2144", newAssigned );
当我在找到这个
时进行调试时运行测试 Api.addLicenseAssinged(licenseId, newAssigned);
它应该得到例外并把它扔给我吧?或者我做错了什么? 而且我并没有嘲笑静态方法。
答案 0 :(得分:1)
我认为你的问题是你正在使用的存根试图匹配你在测试中创建的对象,因此它不是你所测试的类中调用的对象,即:
Assigned newAssigned = new Assigned();
要解决此问题,您应该使用匹配器代替您的存根,即:
Mockito.doThrow(new SdkFault()).when(Api)
.addLicenseAssigned(Matchers.eq("2144"), Matchers.any(Assigned.class));