繁体   English   中英

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

[英]Accessing grailsApplication from spock unit test testing code in src/groovy

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

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

您也可以将其import static grails.util.Holders.config as grailsConfig

然后用它作为

@TestMixin(GrailsUnitTestMixin)
class TicketRequestEmailInfoSpec extends Specification {
    def setup() {
        grailsConfig.acme.purchase.trsUrlBase = "http://localhost:8082/purchase/order/"
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM