如果调用任何方法,EasyMock 3.0 Mocked类需要抛出异常

时间:2012-03-06 15:08:48

标签: java exception easymock

我想模拟一个类,所以如果调用任何方法,它会引发异常。我想要这样做的原因是,我不想在我的测试中使用NullpointerException,我宁愿模拟每个对象,声明为一个实例变量,对于异常的东西是null,所以如果一个方法就可以了得到一个适当的例外,我看到imediatly什么是错的。 EasyMock 3.0是否提供了这样的功能,还是需要以其他方式实现呢?

提前致谢

2 个答案:

答案 0 :(得分:0)

这不是EasyMock的默认行为吗?一旦调用EasyMock.verify(mocks),对模拟对象的任何意外调用都会导致异常。请参阅EasyMock文档 - “Nice Mocks”部分解释了这一点:http://easymock.org/EasyMock3_0_Documentation.html

对于AssertionError,以下测试失败了,这应该是您正在寻找的内容:

@Test
public void testFoo() {
    List list = EasyMock.createMock(List.class);

    EasyMock.replay(list);

    list.size();

    EasyMock.verify(list);
}

答案 1 :(得分:0)

考虑到相同的列表示例

,在调用它时可能会出现异常
List list = EasyMock.createMock(List.class);
EasyMock.expect(list.size()).andThrow(new OurOwnException()).anyTimes();
EasyMock.replay(list);

每当调用size()方法时,这将始终抛出自定义异常。 你是否期望这种行为?