我有一个扩展的groovy.lang.GroovyObject接口。 Implementor类没有公共构造函数,并且包含未在inteface中显示的动态方法。
我试图这样做:
bean.getResults()
在调用时:
{{1}}
它会抛出groovy.lang.MissingMethodException。 实际上我没有进行接口契约,我只需要确保stubed对象返回预期的列表。
另外我不能存根实现者类,它会抛出CannotCreateMockException。
答案 0 :(得分:1)
我似乎最终找到了解决方案。
必须使用Stub GroovyStub而不是Stub。这样就不允许对存根类的方法进行验证。 GroovyObject接口也不起作用,不得不使用GroovyObjectSupport抽象类:
def bean = GroovyStub(GroovyObjectSupport)
bean.getResults() >> ['result1', 'results2']
assert bean.getResults() == ['result1', 'results2']