我正在编写grails插件。有一次,我为插件中存在的服务编写了一个spock测试。这一切都很好,但是出于可视性方面的考虑,我将方法移出了服务,直接移到了插件根目录的GrailsPlugin
类中(最终删除了服务类)。
问题是我仍然想测试这些方法,但是我似乎无法找到一种方法来访问GrailsPlugin
类,因为它不在软件包中,并且位于我项目的根目录下。
我知道像Grails Shiro这样的插件使用小型grails应用程序作为/ test目录下的测试。但是,这对于我要完成的工作是不必要的。在一个完美的世界中,我想对GrailsPlugin类进行spock测试。这可能吗?
最佳答案
我还没有尝试过,但是也许您可以在Spock Specification
的setup
方法中执行以下操作来创建插件类的实例:
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/