Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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 3 如何在下面的代码中为流程方法编写rspec?_Ruby On Rails 3_Rspec - Fatal编程技术网

Ruby on rails 3 如何在下面的代码中为流程方法编写rspec?

Ruby on rails 3 如何在下面的代码中为流程方法编写rspec?,ruby-on-rails-3,rspec,Ruby On Rails 3,Rspec,基本上,我想确保应该从process方法调用方法1和方法2 def process begin method_1 if some_condition method_2 if some_condition self.update_attribute(:status,DONE) rescue=>e self.update_attribute(:status,ERR

基本上,我想确保应该从process方法调用方法1和方法2

  def process
        begin
          method_1  if some_condition
          method_2  if some_condition      
          self.update_attribute(:status,DONE)
        rescue=>e
          self.update_attribute(:status,ERROR)
          p e
        end
    end

def method_1
#some code
end

def method_2
#some code
end
试试这个:

it "should call #method_1" do
  YourClass.should_receive(:method_1)
  YourClass.process
end

it "should call #method_2" do
  YourClass.should_receive(:method_2)
  YourClass.process
end
我假设这些是类方法

如果这些是实例方法,您可以执行
YourClass.any\u instance.when\u receive(…)
your\u instance.when\u receive(…)

有关更多信息,请参阅

编辑:

should\u receive
也将存根该方法。这将取消存根并调用方法:

YourClass.should_receive(:method_2).and_call_original