我想从一个签名看起来像这样的方法中抛出一个ContentIOException
。
public void putContent(InputStream is) throws ContentIOException.
当我尝试像这样从 Mockito 扔ContentIOException
时:
when(StubbedObject.putContent(contentStream)).thenThrow(ContentIOException.class);
我收到以下编译错误:
The method when(T) in the type Mockito is not applicable for the arguments (void).
我做错了什么?
在官方 API 中查看此参考。 您希望反转调用的方式并调整参数,因为这是您希望引发异常的void
方法。
doThrow(new ContentIOException()).when(StubbedObject).putContent(contentStream);
您可以使用
以下代码
when(testRepositoryMock.findOne(123)).thenThrow(new NullPointerException());
然后之后你可以检查你的逻辑
String erroResponse= service.testMethodForResponse(accountNum);
JSONObject jsonObj = new JSONObject(erroResponse);
String _acNo = jsonObj.getString("accountNum");
assertEquals(accountNum, _acNo);
}
如果您使用的是 Spring 引导,请添加类顶部
@SpringBootTest
@RunWith(MockitoJUnitRunner.class)
在类内部,您需要注入对象
@InjectMocks //actual object you want to get test coverage
private TestService testService;
@Mock //Mock object which call by actual object for mocking
private testRepository testRepositoryMock;
参考链接 :http://www.baeldung.com/mockito-behavior