ruby-on-rails - Mongoid 脚手架测试在固定装置上失败

标签 ruby-on-rails mongoid automated-tests scaffolding

当我使用 mongoid 创建一个新的 Rails 应用程序时:

rails new tddapp --skip-active-record
cd tddapp
echo "gem 'mongoid'" >> Gemfile
bundle
rails g mongoid:config

然后生成一个简单的脚手架:

rails g scaffold building height:Integer name:String

脚手架已创建,最小应用程序运行良好。但是脚手架生成的测试失败了:

NoMethodError: undefined method `buildings' for #<BuildingsControllerTest:0x007fa6afbf78d8>

违规行显示测试 Controller 找不到夹具:

@building = buildings(:one)

mongoid 生成器非常好,可以在 test/fixtures/buildings.yml 中创建固定装置,这表明在某种程度上与脚手架的功能测试的整个想法进行了合作。

是否有一些配置设置或我需要更改的内容才能进行功能测试以加载 mongoid 的固定装置?或者脚手架功能测试是否会因 mongoid 而失败? (如果是这样,为什么 mongoid 还要费心创建 fixture 文件?)

最佳答案

不是为了个人宣传,而是因为我在这个问题上卡住了好几次,因为我认为它可能会帮助很多其他人,所以我创建了 mongoid-fixture_set,它在 github 上可用。

它的工作原理与ActiveRecord::FixtureSet差不多,因为我移植了很多代码,你只需要自己将它绑定(bind)到测试类即可:

class ActiveSupport::TestCase
  include Mongoid::FixtureSet::TestHelper
  self.fixture_path = "#{Rails.root}/test/fixtures"
end

在 'lib/rails/test_help.rb' 中的 gem railties 中,rails 为 ActiveRecord 做了同样的事情

关于ruby-on-rails - Mongoid 脚手架测试在固定装置上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15488455/

相关文章:

testing - Jasmine2 和 Protractor 创建的错误文件夹

ruby-on-rails - Rails 3和delayed_job在生产中

ruby-on-rails - 在 mongoid 中使用 LIKE/regex 和变量

ruby-on-rails - 使用 DataMapper 在 Rails 3 中保存嵌套资源表单时出现 "NoMethodError"错误

ruby-on-rails - 如何在Mongoid中强制执行唯一的嵌入式文档

ruby-on-rails - 为什么我的 mongoDB 托管 mongoid.yml 的 uri 设置无法正常工作?

automated-tests - 导入失败的测试结果后,在 TeamBuild 中构建状态为成功

java - 如何从第 3 方 jar 文件中的 Katalon 工作室的 testObject 获取 xpath

ruby-on-rails - 再次返回使用 Rails 3 中的 Rails 2.3.5

mysql - 数据库模型和迁移说明