如何自动将resources.groovy中声明的Grails组件注入到IntegrationSpecs中?

时间:2013-01-16 17:41:51

标签: grails groovy spock

使用Spock(0.7)Grails(2.1.2)插件,您可以编写自动注入Grails原型(如服务)的集成规范。但是,我想对仅在resources.groovy中声明的Spring bean执行相同的操作。例如:

beans = {
    simpleBean(SimpleBean) {
        // load some dependencies
    }
}

src/groovy文件夹中声明SimpleBean的位置。如果这是Grails服务,我可以在我的test/integration文件夹::

中写下类似的内容
import grails.plugin.spock.IntegrationSpec

class SimpleBeanSpec extends IntegrationSpec {

    def simpleBean

    def "should"() {
        when:
            data = simpleBean.load()
        then:
            assert simpleBean
    }

}

但上述内容会在NullPointerException的调用中引发simpleBean.load()。有没有办法让Spock / Grails创建simpleBean依赖项,以便它像Grails服务那样具有resources.groovy所有已配置的依赖项?

1 个答案:

答案 0 :(得分:0)

Grails自动将所有bean注入集成测试,包括Spock测试。在resources.conf中声明的豆应该与人工制品一样工作。您的IntegrationSpec是否位于test/integration下?