Grails:需要处理grailsApplication.config的测试的实用程序类

时间:2013-08-28 16:07:31

标签: grails

我有一堆集成测试。我想要一个具有测试使用的实用方法的类。我开始将实用程序方法全部静态化,并且很容易从测试中获得它们的句柄。

但是,我需要实用程序类才能获得grailsApplication.confg的句柄,所以我可以引入一些配置。为此,由于实用程序类不是服务,因此我创建了类实现ApplicationContextAware。这意味着我必须基于静态方法实例。很公平。

为了使它成为ApplicationContextAware,我实现了接口,我做了:

class TestUtils {
    def grailsApplication
    @Override
    public void setApplicationContext(ApplicationContext applicationContext)
        throws BeansException {
           // TODO Auto-generated method stub
          this.grailsApplication = grailsApplication
    }
    ...

但这永远不会被调用,这意味着我的本地grailApplication ref永远不会被设置。

如果我将此TestUtility字段设为服务或我做错了什么,会更好吗?

1 个答案:

答案 0 :(得分:5)

您可以使用静态方法保留实用程序类,并通过Holders类访问grailsApplication

def grailsApplication = Holders.grailsApplication