EasyMock - 期望一个抛出已检查异常的方法调用

时间:2015-02-12 19:18:42

标签: junit easymock

我有以下方法重新抛出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测试的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

你做得很好。所有你需要做的就是让你的测试方法抛出JMSException

让编译器满意
@Test
public void getText() throws JMSException{
   ... 
}

错误只是因为编译器不知道mockTextMessage.getText()是一个假方法,所以你必须捕获或抛出它抛出的任何异常。别担心,这实际上永远不会抛出异常。