我想模拟一个类,所以如果调用任何方法,它会引发异常。我想要这样做的原因是,我不想在我的测试中使用NullpointerException,我宁愿模拟每个对象,声明为一个实例变量,对于异常的东西是null,所以如果一个方法就可以了得到一个适当的例外,我看到imediatly什么是错的。 EasyMock 3.0是否提供了这样的功能,还是需要以其他方式实现呢?
提前致谢
答案 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()方法时,这将始终抛出自定义异常。 你是否期望这种行为?