Java 从src/groovy中的spock单元测试代码访问grailsApplication
我正在尝试使用Spock测试src/groovy中的一些代码。我正在测试的代码引用了grailsApplication。因为它在src/groovy中,所以我使用依赖注入将grailsApplication注入bean,如下所示:Java 从src/groovy中的spock单元测试代码访问grailsApplication,java,unit-testing,grails,groovy,spock,Java,Unit Testing,Grails,Groovy,Spock,我正在尝试使用Spock测试src/groovy中的一些代码。我正在测试的代码引用了grailsApplication。因为它在src/groovy中,所以我使用依赖注入将grailsApplication注入bean,如下所示: ticketRequestEmailInfo(TicketRequestEmailInfo) { grailsApplication = ref('grailsApplication') } 我遇到的问题是,当测试代码碰到引用grailsApplicatio
ticketRequestEmailInfo(TicketRequestEmailInfo) {
grailsApplication = ref('grailsApplication')
}
我遇到的问题是,当测试代码碰到引用grailsApplication的代码行时,我得到一个NullPointerException:
java.lang.NullPointerException: Cannot get property 'config' on null object
我的测试类具有以下功能:
@TestMixin(GrailsUnitTestMixin)
class TicketRequestEmailInfoSpec extends Specification {
def setup() {
grailsApplication.config.acme.purchase.trsUrlBase = "http://localhost:8082/purchase/order/"
}
有人有什么建议吗?试试Holders.grailsApplication.config:
@TestMixin(GrailsUnitTestMixin)
class TicketRequestEmailInfoSpec extends Specification {
def setup() {
Holders.grailsApplication.config.acme.purchase.trsUrlBase = "http://localhost:8082/purchase/order/"
}
注入
grailsApplication
作为def grailsApplication
进行测试时不起作用
您还可以将其导入为将静态grails.util.Holders.config导入为grailsConfig
然后将其用作
@TestMixin(GrailsUnitTestMixin)
class TicketRequestEmailInfoSpec extends Specification {
def setup() {
grailsConfig.acme.purchase.trsUrlBase = "http://localhost:8082/purchase/order/"
}
在测试中使用def grailsApplication会产生NullPointerException。一定是因为我正在测试的代码是src/groovy。不过,按照上面的建议使用Holders.grailsApplication.config是可行的。