【问题标题】: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")
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-06
          • 1970-01-01
          • 2013-08-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多