Grails控制器测试与多个服务模拟

时间:2015-09-12 11:24:27

标签: unit-testing grails

我正在为旧的grails项目添加测试套件(grails 2.2.5)。

我有一些使用两个或更多服务的控制器,所以我需要在测试体中模拟它们,例如:

void testSave() {
    def myService1 = mockFor(MyService1)
    // ... mock setup
    def myService2 = mockFor(MyService2)
    // ... mock setup
    def myService3 = mockFor(MyService3)
    // ... mock setup
    // ... test code
}

void testUpdate() {
    def myService1 = mockFor(MyService1)
    // ... mock setup
    def myService2 = mockFor(MyService2)
    // ... mock setup
    def myService3 = mockFor(MyService3)
    // ... mock setup
    // ... test code
}

// ... other methods

由于我需要在所有控制器测试中使用此服务,我必须在每个测试方法中复制此代码,或者有更好的方法(不重复代码)?

1 个答案:

答案 0 :(得分:1)

您可以创建服务变量类字段/属性,然后在setup()setupSpec()方法中进行设置。看一下here列出的夹具方法。