2014-09-04 80 views
0

我在写一个grails插件。有一次,我为该插件中存在的服务编写了spock测试。这一切都很好,但是出于可见性方面的考虑,我将这些方法从服务中移出并直接放入我的插件根目录下的GrailsPlugin类(最终删除服务类)。如何在项目根目录下测试GrailsPlugin类

问题是我仍然想测试这些方法,但我似乎无法找到访问GrailsPlugin类的方法,因为它不在包中,而且它存在于我的项目的根目录中。

我知道像Grails Shiro这样的插件使用小的grails应用程序作为/ test目录下的测试。然而,这对我正在努力完成的事情来说是不必要的。在一个完美的世界中,我想对我的GrailsPlugin类进行spock测试。这可能吗?

回答

1

我还没有尝试过,但也许你可以这样做在你的斯波克Specificationsetup方法如下创建插件类的一个实例:

def gcl = new GroovyClassLoader() 
def pluginDir = new File('.') 
gcl.addClasspath(pluginDir.canonicalPath) 
def pluginClass = gcl.loadClass('QuartzGrailsPlugin') 
def plugin = pluginClass.newInstance() 

很显然,我把这个例子来自Quartz插件。我发现它在这里:

https://github.com/grails-plugins/grails-quartz/blob/master/test/unit/grails/plugins/quartz/QuartzConfigTests.groovy

+0

这对我来说很好,感谢快速响应! – hippofluff 2014-09-04 19:44:16