使用 mocha 模拟 Rails 应用程序对象



我正在编写一个生成器,我需要模拟一个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.application.class回复的对象是响应parent并返回name的模拟。现在,您只需存根应用程序。您需要模拟父级、类和应用程序。可能有一种更干净的方法,但我认为这将做你想要的:

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

相关内容

  • 没有找到相关文章

最新更新