gpt4 book ai didi

grails - 如何使用 Grails 3.3.x 在 groovy/src 类中模拟服务

转载 作者:行者123 更新时间:2023-12-02 14:39:37 26 4
gpt4 key购买 nike

我最近升级到 grails 3.3.1 并意识到 grails.test.mixin.Mock根据我的理解,已被拉到单独的项目中,该项目只是为了向后兼容而构建的 org.grails:grails-test-mixins:3.3.0 .

我一直在使用@Mock模拟 Grails 服务的注释注入(inject)到被测 groovy/src 类中。在这种情况下,模拟协作服务的策略是什么? Spock 有什么我可以使用的东西,或者我应该回退到 grails-test-mixins 插件吗?

待测类:
进口gra

ils.util.Holders

import grails.util.Holders

class SomeUtilClass {

static MyService myService = Holders.grailsApplication.mainContext.getBean("myService")

static String myMethod() {
// here is some code
return myService.myServiceMethod()
}
}

我的测试规范(Grails 3.2.1):
import grails.test.mixin.Mock
import spock.lang.Specification

@Mock([MyService])
class ValidatorUtilsTest extends Specification {

def 'my test'() {
when:
def result = SomeUtilClass.myMethod()
then:
result == "result"
}
}

最佳答案

由于您在 SomeUtilClass 中使用 Holders.grailsApplication,您可以尝试添加 @Integration 注解:

import grails.testing.mixin.integration.Integration
import spock.lang.Specification
@Integration
class ValidatorUtilsTest extends Specification {

def 'my test'() {
when:
def result = SomeUtilClass.myMethod()
then:
result == "result"
}
}

不确定,但希望它对你有用。

关于grails - 如何使用 Grails 3.3.x 在 groovy/src 类中模拟服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47486333/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com