在 spock 中模拟对同一方法的多次调用
Mock multiple calls to the same method in spock
我目前正在为 groovy 应用程序编写单元测试用例
class StorePage{
..
..
str1 = obj.getDateBasedOnValue("A");
str2 = obj.getDateBasedOnValue("B");
}
测试class
classStorePageSpec extends Specification{
Obj obj = Mock(Obj)
...
def "testCase 1"(){
obj.getDateBasedOnValue(_) >> "some date string 1"
obj.getDateBasedOnValue(_) >> "some date string 2"
}
}
谁能告诉我这是否是在 spock 中模拟这两个调用的正确方法?如果否,请指导我找到正确的解决方案。
要return 连续调用的不同值,请使用三重右移 (>>>) 运算符:
def "testCase 1"(){
obj.getDateBasedOnValue(_) >>> ["some date string 1", "some date string 2"]
}
然后getDateBasedOnValue()
第一次return"some date string 1"
,第二次"some date string 2"
我目前正在为 groovy 应用程序编写单元测试用例
class StorePage{
..
..
str1 = obj.getDateBasedOnValue("A");
str2 = obj.getDateBasedOnValue("B");
}
测试class
classStorePageSpec extends Specification{
Obj obj = Mock(Obj)
...
def "testCase 1"(){
obj.getDateBasedOnValue(_) >> "some date string 1"
obj.getDateBasedOnValue(_) >> "some date string 2"
}
}
谁能告诉我这是否是在 spock 中模拟这两个调用的正确方法?如果否,请指导我找到正确的解决方案。
要return 连续调用的不同值,请使用三重右移 (>>>) 运算符:
def "testCase 1"(){
obj.getDateBasedOnValue(_) >>> ["some date string 1", "some date string 2"]
}
然后getDateBasedOnValue()
第一次return"some date string 1"
,第二次"some date string 2"