我最近升级到grails 3.3.1,并意识到grails.test.mixin.Mock
已被拉到单独的项目,这是为了向后兼容,根据我的了解org.grails:grails-test-mixins:3.3.0
。如何在Grails 3.3.x中测试groovy/src类中的服务
我一直在使用@Mock
注释来模拟Grails服务,注入到被测试的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"
}
}
嗯,这实际上是对我来说最干净的解决方案,因为我也想测试MyService。所以集成服务最有意义。谢谢... – kuceram
听到这个真的很高兴:D。 –