使用rspec调用ensure logger

时间:2011-08-26 22:32:22

标签: ruby-on-rails ruby-on-rails-3 testing rspec mocha

我正在尝试在特定条件下测试我的rails应用程序中的控制器,该条件应该引发错误并记录它。我的加速测试工作得很好但是我想确保记录器被调用,到目前为止我试过这个,但是它没有工作

  it 'logs the error' do
    get 'edit', {:id => 'banana'}
    Logger.any_instance.expects(:error)
  end

ps我正在使用Mocha

3 个答案:

答案 0 :(得分:9)

使用rails 4,正确的方法是以下

expect(Rails.logger).to receive(:error).with("your error message")

答案 1 :(得分:5)

我确切地想出了我想要的东西,例如:

 Rails.logger.expects(:error).with('this error message')

如何使用mocha断言正在记录特定的错误消息。

答案 2 :(得分:4)

使用rspec你会写:

Rails.logger.should_receive(:error).with("your error message")