【问题标题】:Getting Rails 3 Generators with Rspec 2 and Mocha使用 Rspec 2 和 Mocha 获取 Rails 3 生成器
【发布时间】:2010-08-02 20:19:13
【问题描述】:

我已经按照我在网上找到的所有步骤来配置带有 Rspec 2 和 Mocha 的 Rails 3。在我的 Gemfile 中:

group :development do
  gem 'rails3-generators'
  gem "rspec", '>= 2.0.0.beta.19'
  gem "rspec-rails", '>= 2.0.0.beta.19'
end

group :test do
  gem "faker"
  gem "rspec", '>= 2.0.0.beta.19'
  gem "rspec-rails", '>= 2.0.0.beta.19'
  gem "machinist", '>= 2.0.0.beta1'
  gem "mocha"
  gem "capybara", ">= 0.3.9"
end

在 spec/spec_helper.rb 中:

RSpec.configure do |config|
  config.mock_with :mocha
  config.fixture_path = "#{::Rails.root}/spec/fixtures"
  config.use_transactional_fixtures = true
end

不过,当我使用 Rails 生成器时...

rails generate scaffold foo name:string

...我在 spec/controllers/foos_controller_spec.rb 中得到以下内容:

  def mock_foo(stubs={})
    @mock_foo ||= mock_model(Foo, stubs).as_null_object
  end

...这当然会导致所有规范失败。

有人知道我错过了什么吗?

提前致谢。

【问题讨论】:

  • 我现在正在研究同样的问题。你找到解决办法了吗?我决定将测试改为使用 mocha,然后将其变成生成器。
  • 这里只是一个注释.. 您可以在 Gemfile 中使用 rspec、rspec-rails 和 capybara,而无需现在指定版本。它们现在与 Rails 3 兼容。
  • 我遇到了同样的问题。我很想修改现有的生成器,但我不想复制其他人已经做过的事情。

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


【解决方案1】:

在 application.rb 中,您需要以下内容:

config.generators do |g|
  g.test_framework  :rspec
end

此处提供更多信息:

http://guides.rubyonrails.org/generators.html#customizing-your-workflow

【讨论】:

  • 将 RSpec 设置为我的测试框架时,我仍然得到 RSpec 模拟,而不是 mocha 模拟。
猜你喜欢
  • 2011-04-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-22
  • 1970-01-01
相关资源
最近更新 更多