【问题标题】:Using rspec the ensure logger is called使用 rspec 调用确保记录器
【发布时间】:2011-08-26 22:32:21
【问题描述】:
我正在尝试在我的 rails 应用程序中测试一个控制器,在特定条件下应该引发错误并记录它。我的 raise 测试工作得很好,但我想确保记录器被调用,到目前为止我试过这个,但它不起作用
it 'logs the error' do
get 'edit', {:id => 'banana'}
Logger.any_instance.expects(:error)
end
ps 我用的是摩卡
【问题讨论】:
标签:
ruby-on-rails
ruby-on-rails-3
testing
rspec
mocha.js
【解决方案1】:
使用 rails 4,正确的方法如下
expect(Rails.logger).to receive(:error).with("your error message")
【解决方案2】:
我确切地知道我想要什么,例如:
Rails.logger.expects(:error).with('this error message')
如何使用 mocha 断言正在记录特定错误消息。
【解决方案3】:
使用 rspec 你会写:
Rails.logger.should_receive(:error).with("your error message")