grails - 如何在项目根目录下测试GrailsPlugin类

标签 grails grails-2.0 grails-plugin spock

我正在编写grails插件。有一次,我为插件中存在的服务编写了一个spock测试。这一切都很好,但是出于可视性方面的考虑,我将方法移出了服务,直接移到了插件根目录的GrailsPlugin类中(最终删除了服务类)。

问题是我仍然想测试这些方法,但是我似乎无法找到一种方法来访问GrailsPlugin类,因为它不在软件包中,并且位于我项目的根目录下。

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

最佳答案

我还没有尝试过,但是也许您可以在Spock 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

关于grails - 如何在项目根目录下测试GrailsPlugin类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25673584/

相关文章:

grails - Grails插件数据库迁移使用哈希表添加域对象

grails - 如何在Grails中保留表单参数

grails - 更改表时Grails产生错误

string - 增加VARCHAR的限制

angularjs - grails 2.3.4 结合angular js的智能文件夹结构

jquery - Grails 远程函数 onSuccess 与 onComplete

grails - Grails:环境 block 中的配置项(BuildConfig.groovy)是否可以覆盖常规配置?

grails - 获取grails中子类的行数

Grails 多对多关联和防止级联

Grails 数据绑定(bind)日期格式