【问题标题】:Mocking a Rails application object with mocha用 mocha 模拟 Rails 应用程序对象
【发布时间】:2011-05-24 01:07:33
【问题描述】:

我正在编写一个生成器,我需要模拟一个 Rails.application 对象并取回 Rails.application.class.parent 作为 Rails 应用程序的名称。

def test_model_with_application_namespace
  name = "Dummyapp"
  application = Rails.stubs(:application).class.parent.returns(name)
  run_generator ["file", "--namespaced"]
  assert_file "app/models/myapp/file.rb", /class Dummyapp::File < ActiveRecord::Base/
end

这是我迄今为止的测试。

【问题讨论】:

  • 提供您的代码很有帮助,但让我们知道失败的原因以及您遇到的错误会更有帮助。阅读本文,我假设您的 Rails.stubs(:application) 行不工作。但我不确定这是否是你要问的。

标签: ruby-on-rails-3 namespaces mocha.js


【解决方案1】:

您需要 Rails.application.class 返回的对象是一个响应 parent 并返回 name 的模拟对象。现在,您只需将应用程序存根。您需要父级、类和应用程序来模拟。可能有一种更清洁的方法,但我认为这会满足您的要求:

 application = Rails.stubs(:application).returns(mock(:class => mock(:parent => name)))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-21
    • 1970-01-01
    相关资源
    最近更新 更多