groovy 在spock中模拟对同一方法的多次调用

oewdyzsn  于 6个月前  发布在  其他
关注(0)|答案(1)|浏览(123)

我目前正在为一个groovy应用程序编写单元测试用例

class Page{
   ..
   ..
   str1 = obj.getDateBasedOnValue("A");
   str2 = obj.getDateBasedOnValue("B");
}

字符串
测试类

class PageSpec extends Specification{
   Obj obj = Mock(Obj)
   ...
   def "testCase 1"(){
      obj.getDateBasedOnValue(_) >> "some date string 1"
      obj.getDateBasedOnValue(_) >> "some date string 2"
   }
}


有人能告诉我这是否是正确的方式来模拟这两个电话在斯波克?如果没有,那么请引导我走向正确的解决方案。

mrphzbgm

mrphzbgm1#

要在连续调用时返回不同的值,请使用三重右移(>)运算符:

def "testCase 1"(){
    obj.getDateBasedOnValue(_) >>> ["some date string 1", "some date string 2"]
}

字符串
然后getDateBasedOnValue()将第一次返回"some date string 1",第二次返回"some date string 2"

相关问题