简体   繁体   English

如何在grails中模拟命名查询?

[英]How to mock named query in grails?

I've following problem in grails 2.1.0. 我在grails 2.1.0中遇到了问题。 I've domain which has named query. 我的域名已经命名查询。 In service I call list() method on result of this named query: 在服务中,我在这个命名查询的结果上调用list()方法:

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

So, I'd like mock result in my service's unit test. 所以,我想在我的服务单元测试中模拟结果。 Is there any option to do it? 有没有选择吗?

I believe you can through altering the metaclass. 我相信你可以通过改变元类。 Just be sure to @Mock the class as well so you don't get test pollution: 请务必@Mock上课,这样你就不会受到测试污染:

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

Also be sure that you match the type and number of params exactly or it may not work. 另外请确保您准确匹配参数的类型和数量,否则它可能无效。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM