我有一个间接使用类的测试用例Foo
。出于测试用例的目的,我不在乎 Foo 是什么。我应该可以嘲笑它。
Foo mock = EasyMock.createMock(Foo.class);
但是,测试用例使用了一个在 Foo 上调用一些方法的库。其中一些方法返回对象,然后这个库对这些返回的对象调用一些方法。就本测试而言,这些对象是什么并不重要,只要它们不为 null 并且不会导致 NullPointerExceptions。
我一直在为这个库调用的每个对象和方法添加一大堆期望调用,如下所示:
Bar bar = EasyMock.createMock(Bar.class);
Baz baz = EasyMock.createMock(Baz.class);
EasyMock.expect(mock.getBar()).andReturn(bar).anyTimes();
EasyMock.expect(bar.getBaz()).andReturn(baz).anyTimes();
基本上,只是一遍又一遍地为这个库最终调用的任何方法创建期望。
同样,对于我的测试而言,对象本身并不重要。该库只需要它们在大多数情况下是非空的。
有没有办法自动化这个?我想要的是某种“深度模拟”功能,我可以告诉 EasyMock 为通过模拟对象获得的任何对象自动返回模拟对象。