从src/groovy中的spock单元测试测试代码访问grailsApplication

use*_*924 4 java grails groovy unit-testing spock

我正在尝试使用Spock测试src/groovy中的一些代码.我正在测试的代码引用了grailsApplication.因为它在src/groovy中,我使用依赖注入将grailsApplication注入到bean中,如下所示:

ticketRequestEmailInfo(TicketRequestEmailInfo) {
    grailsApplication = ref('grailsApplication')
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是当测试代码遇到引用grailsApplication的代码行时,我得到一个NullPointerException:

java.lang.NullPointerException: Cannot get property 'config' on null object
Run Code Online (Sandbox Code Playgroud)

我的测试类有以下几点:

@TestMixin(GrailsUnitTestMixin)
class TicketRequestEmailInfoSpec extends Specification {
    def setup() {
        grailsApplication.config.acme.purchase.trsUrlBase = "http://localhost:8082/purchase/order/"
}
Run Code Online (Sandbox Code Playgroud)

有没有人有什么建议?

nic*_*dos 8

试试Holders.grailsApplication.config:

@TestMixin(GrailsUnitTestMixin)
class TicketRequestEmailInfoSpec extends Specification {
    def setup() {
        Holders.grailsApplication.config.acme.purchase.trsUrlBase = "http://localhost:8082/purchase/order/"
}
Run Code Online (Sandbox Code Playgroud)