我的目标是为我自己的Grails插件编写测试。到目前为止采取的步骤:
步骤 - 制作插件 通过在BuildConfig.groovy
中添加以下行来内联应用程序 - testApp grails.plugin.location.PluginName = '../../../../PluginName'
问题是在单元测试中,服务(来自内联插件)不会像单元测试中的常规应用程序那样注入。这是样本测试:
@TestFor(SampleService)
class SampleServiceUnitSpec extends UnitSpec {
def "Sample Test"(){
setup:
def test = 'ok'
when:
test = "changed"
then:
assert service
assert "changed" == test
}
}
如果此测试是从grails应用程序运行并且服务是应用程序的一部分,则会注入服务。如果从包含该服务的内联插件的testApp运行此测试,则不会注入该服务。如果测试是插件单元测试并且插件中声明了服务,则不会注入该服务。
如何注入服务以便进行测试?任何好的文档,posts.etc如何最好的测试Grails插件?谢谢
答案 0 :(得分:0)
为什么要在应用程序内为插件服务创建单元测试。你的应用程序不应该只是担心他自己的代码吗?
我建议你分开你的顾虑:插件类应该在插件中测试,应用程序中的应用程序类。对于应用程序的观点,假设您的服务“应该正常工作”,因为它们在插件中经过了充分测试。
另外,我建议不要在Grails插件中创建应用程序。测试文件夹仅用于您的测试类,仅此而已。
如果您只想维护插件的最新版本,则只需创建一个应用程序(在插件外的另一个文件夹中),并始终在那里进行更新。
如果您需要维护多个版本或多个Grails版本,那么使用指定版本创建测试应用程序的Groovy脚本可能是更好的方法。