【问题标题】:How to mock named query in grails?如何在grails中模拟命名查询?
【发布时间】:2014-06-05 10:29:52
【问题描述】:

我在 grails 2.1.0 中遇到了问题。我有一个名为查询的域。在服务中,我在这个命名查询的结果上调用 list() 方法:

List result = Domain.namedQuery(someParams).list()

所以,我想在我的服务的单元测试中模拟结果。有什么办法吗?

【问题讨论】:

    标签: grails groovy mocking


    【解决方案1】:

    我相信你可以通过改变元类。一定要@Mock上课,这样你就不会受到测试污染:

    Domain.static.metaclass.namedQuery = { someParams ->
        // Assert and return data
    }
    

    还要确保您完全匹配参数的类型和数量,否则可能无法正常工作。

    【讨论】:

    • 我试过了。它对我不起作用......我应该使用什么返回类型?当我尝试返回域类的List,然后在其上调用list(),它返回空列表。
    • @ddd 我认为你需要一个 PagedResultList。我不认为 List 本身有一个名为 list() 的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 2015-07-28
    • 1970-01-01
    • 2023-04-02
    • 2012-04-17
    相关资源
    最近更新 更多