【问题标题】:How to mock a method of the controller under test in grails 3.3.8如何在 grails 3.3.8 中模拟被测控制器的方法
【发布时间】:2019-05-14 23:13:43
【问题描述】:

我在被测试的控制器中有一个私有方法,我已经练习过了,只是想在进一步的测试中进行模拟。在 grails 2.3.4 中,以下代码有效:

controller.metaClass.method = { a, b -> 'value' }

但是在 grails 3.3.8 中这似乎没有效果,并且它使用了实际的控制器方法。如何在 grails 3.3.8 中模拟这个?

【问题讨论】:

    标签: grails mocking metaclass


    【解决方案1】:

    我终于在这里找到了一点信息:

    groovy per instance metaClass method override doesnt work as expected in spock test

    和链接的错误报告:

    https://issues.apache.org/jira/browse/GROOVY-7368

    我尝试将类型添加到参数中,这些类型看起来不是很时髦,但也没有任何区别。

    从方法中删除“私有”确实允许元类模拟工作并且测试用例通过。我不是很喜欢那个解决方案,但现在我只有这些了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 2014-10-11
      • 1970-01-01
      • 2019-05-02
      • 2012-07-28
      • 1970-01-01
      • 2014-06-29
      相关资源
      最近更新 更多