0

基本上我想确保应该从过程方法调用method_1和method_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
4

1 回答 1

1

尝试这个:

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_instance.should_receive(...)your_instance.should_receive(...)

有关更多信息,请参阅http://rubydoc.info/gems/rspec-mocks/frames

编辑:

should_receive还将存根该方法。这将取消存根并调用方法:

YourClass.should_receive(:method_2).and_call_original
于 2013-03-14T13:54:41.070 回答