在测试中,我需要重写某些域类的功能,像这样
SomeDomain.countBySomeField(Paramater)
为了解决这个问题,我尝试了
@Mock([SomeDomain])
class SomeDomainTests ...
...
void test() {
SomeDomain.metaClass.static.countBySomeField = { -> 1}
}
但是,当此方法在 Controller (被测试调用)中调用时,我没有看到任何结果。可能是您说去阅读文档,但是我没有找到可以告诉我如何做的东西。对于任何可以告诉我错误之处的文章或示例,我将不胜感激。
最佳答案
我这样做可以解决我的问题
@TestFor(SomeController)
@Mock([SomeDomain])
@TestMixin(DomainClassUnitTestMixin)
class SomeControllerTests {
...
void test() {
SomeDomain.metaClass.'static'.countBySomeParam = { a -> 0}
}
}