我有以下方法重新抛出RuntimeException中包含的JMSException,因此我的代码不必处理已检查的异常。
public String getText(TextMessage textMessage) {
try {
return textMessage.getText();
} catch (JMSException e) {
throw new RuntimeException(e);
}
}
我正在尝试使用EasyMock,要求getText方法在调用时抛出JMSException,以便我可以测试是否抛出了RuntimeException。
@Test
public void getText() {
TextMessage mockMessage = createMock(TextMessage.class);
expect(mockTextMessage.getText()).andThrow(new JMSException("Something terrible happened"));
replayAll();
jmsHelper.getText(mockTextMessage);
verifyAll();
}
我正在针对expect(mockTextMessage.getText())代码获取 Unhandled异常类型JMSException 编译错误。
编写此EasyMock测试的最佳方法是什么?
答案 0 :(得分:1)
你做得很好。所有你需要做的就是让你的测试方法抛出JMSException
让编译器满意@Test
public void getText() throws JMSException{
...
}
错误只是因为编译器不知道mockTextMessage.getText()是一个假方法,所以你必须捕获或抛出它抛出的任何异常。别担心,这实际上永远不会抛出异常。