Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails ruby rspec:如何使存根在每次调用时表现不同_Ruby On Rails_Rspec - Fatal编程技术网

Ruby on rails ruby rspec:如何使存根在每次调用时表现不同

Ruby on rails ruby rspec:如何使存根在每次调用时表现不同,ruby-on-rails,rspec,Ruby On Rails,Rspec,如何使RSpec中的存根在每次调用时表现不同 比如说, teststub.onCall(0).stub(:testmethod).and_raise(Exception) teststub.onCall(1).stub(:testmethod).and_return(true) 似乎RSpec没有onCall构造。如何实现这一点?替换it的实现。然后你可以用它做任何你想做的事。包括但不限于在每次通话中表现不同 teststub.stub(:testmethod) do if @alread

如何使RSpec中的存根在每次调用时表现不同

比如说,

teststub.onCall(0).stub(:testmethod).and_raise(Exception)
teststub.onCall(1).stub(:testmethod).and_return(true)

似乎RSpec没有
onCall
构造。如何实现这一点?

替换it的实现。然后你可以用它做任何你想做的事。包括但不限于在每次通话中表现不同

teststub.stub(:testmethod) do
  if @already_raised
    true
  else
    @already_raised = true
    raise Exception
  end
end

使用before钩子可以将它们隔离开来,非常感谢。我还没试过这个。但是,这似乎是可行的。