【发布时间】:2017-01-31 20:20:41
【问题描述】:
我正在使用 grails 2.5.4 和 spock 框架。我的 grails proyect 中有以下服务
class MyService {
void method1(Param param) {
if (param == null) {
return
}
method2(param)
method3(param)
}
void method2(Param param) {
println param
}
void method3(Param param) {
println param
}
}
所有方法都有 void 返回类型。我想检查一下,在非空参数的情况下,所有方法都被调用。
我的测试是这样的
@TestFor(PaymentService)
class MyServiceSpec extends Specification {
void testMethods() {
when:
service.method1(new Param())
then:
1 * service.method2(*_)
1 * service.method3(*_)
}
}
但它总是显示方法 2 和方法 3 的 0 次交互。我知道它们被称为(我使用了调试器)。我知道我可以模拟主服务的服务,但我不知道如何测试主服务上的交互或模拟服务的特定方法以测试它们是否被调用。
我不确定我是否解释得很好.....
【问题讨论】:
标签: unit-testing grails spock