0

在测试中我需要覆盖一些域类的功能,像这样

SomeDomain.countBySomeField(Paramater)

为了解决这个问题,我尝试了

@Mock([SomeDomain])
class SomeDomainTests ...
...
    void test() {
        SomeDomain.metaClass.static.countBySomeField = { -> 1}
    }

但是当这个方法在控制器中调用(由测试调用)时,我所期望的不会发生。可能,你说去阅读文档,但我没有找到可以告诉我如何做到这一点的东西。我将不胜感激任何可以说我哪里错的文章或示例。

4

1 回答 1

4

我通过这样做解决了我的问题

@TestFor(SomeController)
@Mock([SomeDomain])
@TestMixin(DomainClassUnitTestMixin)
class SomeControllerTests {
    ...
    void test() {
        SomeDomain.metaClass.'static'.countBySomeParam = { a -> 0}
    }
}
于 2012-09-20T13:49:40.563 回答