如何对Spock中具有超类的类进行单元测试,从而调用超类的方法调用?或者你如何模拟Spock中的超类?
前:
class Bar {
def method1(parm1){
//Method actions
}
}
class Foo extends Bar {
def method2(param1, param2) {
//Method actions
super.method1(param1)
}
}
如何模拟班级Bar
的行为?
答案 0 :(得分:2)
您可以将班级Foo
用作Spy
。间谍将创建类Foo
的实例,但是您可以模拟在间谍类层次结构中声明的任何公共方法。
def fooInstance = Spy(Foo)
fooInstance.method1(_) >> 'return value'
答案 1 :(得分:0)
以下代码将帮助您指定实际调用的方法。
setup:
def fooInstance = Spy(Foo)
when: "this try-catch block is debug code"
try {
// do something with Foo or Bar
}
catch (Exception e) {
}
then:
0 * fooInstance._
此网站可能有用。 - > Spock Mock Cheatsheet