将 属性 注入集成测试 Grails 3
Inject property into integration test Grails 3
如何将 applicaiton.yml 文件中的属性注入到 grails 3.0 中的集成测试中?
例如:我的 applicaiton.yml
中有这个 属性
----
testing:
defaults:
startUrl: 'http://localhost:8080/'
----
在我的 Integration Spock 测试中,我有以下代码:
class WebpageRolesTestSpec extends Specification {
def grailsApplication
String LOGIN_URL = grailsApplication.config.getProperty('testing.defaults.startUrl')
void "test login screen prompt"() {
expect:
LOGIN_URL == 'http://localhost:8080/'
}
}
我遇到的异常是:无法在空对象上获取 属性 'config'
您可以使用支架:
import grails.util.Holders
...
LOGIN_URL = Holders.config.testing.defaults.startUrl
...
下面的测试在 Grails 3.1.1 中对我有效,我想你需要一个干净的应用程序。
import grails.test.mixin.integration.Integration
import grails.transaction.*
import spock.lang.*
@Integration
@Rollback
class SampleSpec extends Specification {
def grailsApplication
void "test something"() {
expect:"fix me"
grailsApplication.config.getProperty('testing.defaults.startUrl') ==
'http://localhost:8080/'
}
}
如何将 applicaiton.yml 文件中的属性注入到 grails 3.0 中的集成测试中?
例如:我的 applicaiton.yml
中有这个 属性----
testing:
defaults:
startUrl: 'http://localhost:8080/'
----
在我的 Integration Spock 测试中,我有以下代码:
class WebpageRolesTestSpec extends Specification {
def grailsApplication
String LOGIN_URL = grailsApplication.config.getProperty('testing.defaults.startUrl')
void "test login screen prompt"() {
expect:
LOGIN_URL == 'http://localhost:8080/'
}
}
我遇到的异常是:无法在空对象上获取 属性 'config'
您可以使用支架:
import grails.util.Holders
...
LOGIN_URL = Holders.config.testing.defaults.startUrl
...
下面的测试在 Grails 3.1.1 中对我有效,我想你需要一个干净的应用程序。
import grails.test.mixin.integration.Integration
import grails.transaction.*
import spock.lang.*
@Integration
@Rollback
class SampleSpec extends Specification {
def grailsApplication
void "test something"() {
expect:"fix me"
grailsApplication.config.getProperty('testing.defaults.startUrl') ==
'http://localhost:8080/'
}
}