gpt4 book ai didi

grails - Spock 在接口(interface)中未显示的动态方法上抛出 MissingMethodException

转载 作者:行者123 更新时间:2023-12-02 14:41:38 24 4
gpt4 key购买 nike

我有扩展的 groovy.lang.GroovyObject 接口(interface)。实现类没有公共(public)构造函数,并且包含接口(interface)中未显示的动态方法。

我正在尝试这样做:

def bean = Stub(GroovyObject)
bean.getResults() >> ['result1', 'results2']

调用时:
bean.getResults() 

它会抛出 groovy.lang.MissingMethodException。
实际上我没有进行接口(interface)契约,我只需要确保 stub 对象返回预期列表。

我也不能 stub 实现类,它会抛出CannotCreateMockException。

最佳答案

看来我最终自己找到了解决方案。

必须使用 GroovyStub 而不是 Stub。这将不允许对 stub 类的方法进行验证。 GroovyObject 接口(interface)也不起作用,必须使用 GroovyObjectSupport 抽象类:

def bean = GroovyStub(GroovyObjectSupport) 
bean.getResults() >> ['result1', 'results2']
assert bean.getResults() == ['result1', 'results2']

关于grails - Spock 在接口(interface)中未显示的动态方法上抛出 MissingMethodException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31829398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com