[英]How to access grailsApplication and ApplicationContext in Functional Tests
我正在构建一个Grails REST应用程序,并且我已经使用Spock编写了我的功能测试。 请注意,这些功能测试仅适用于REST服务。
class LoginFunctionalSpec extends Specification {
def setUp() {
// here I want to access grailsApplication.config
}
}
我已经尝试过以下方法:
但是他们都没有在我的功能测试中提供grailsApplication.config。
有没有办法实现这个目标?
@dmahapatro
我没有使用Geb,因为我正在测试REST服务,并且不需要浏览器自动化。
正如我在第1点中所说的那样,grails应用程序没有被自动注入。
class LoginFunctionalSpec extends Specification {
def grailsApplication
def setUp() {
def port = grailsApplication.config.mongo.port //throws NPE
}
}
它抛出一个NPE,说在null对象上调用了config属性。
我认为你不需要明确注入任何东西。 默认情况下, grailsApplication
在测试中可用。
class LoginFunctionalSpec extends Specification {
def setUp() {
grailsApplication.config.blah //should work
}
}
注意-
Spock不提供功能测试的直接支持。 您需要使用Geb进行正确的功能测试。
您是在集成测试阶段还是功能测试阶段运行测试?
您需要从IntegrationSpec扩展到在集成测试阶段进行自动装配,但是您在这里谈论功能测试...由于grails在与测试中的应用程序相同的JVM中运行测试,您实际上不需要使用RemoteControl但是我总是在我的功能测试中做,因为它对我来说似乎更干净,并且如果测试中的测试和应用程序没有在同一个JVM中运行,那么它是一个非常强大的技术。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.