我有以下课程,我试图使用spock进行模拟:
final class A{
private B b
public getB(){
return b
}
public A(B b){
this.b = b
}
}
我尝试使用以下代码来模拟这个类,它正在运行。
def "test"(){
def mockA = GroovyMock(A)
when:
service.x()
then:
1 * new A(*_) >> {mockA}
}
下面是我的x()方法:
x(){
A a = new A(b)
B b = a.getB()
}
现在我想模拟a.getB()来获取B的模拟对象。我试图为B创建一个模拟但是我在a.getB()处得到null。是否可以模拟getB()方法来获取B的模拟对象?
所以我想做一些像
这样的事情1 * a.getB() >> {mockB}
但我得到空例外
答案 0 :(得分:0)
做
def mockA = GroovyMock(A) >> {
getB() >> GroovyMock(B)
}
。
P.S。我很惊讶在没有指定global: true