Dou*_*g R 5 testing ruby-on-rails
我在使用MongoDB和Mongoid尝试在Rails3项目中运行测试时遇到错误:
undefined method `use_transactional_fixtures=' for ActiveSupport::TestCase:Class
Run Code Online (Sandbox Code Playgroud)
这是一个在3.0.7上运行的全新项目.我的test_helper.rb文件就是这样的:
ENV["RAILS_ENV"] = "test"
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
class ActiveSupport::TestCase
self.use_transactional_fixtures = true
end
Run Code Online (Sandbox Code Playgroud)
这是一个ActiveRecord唯一的方法吗?我在其他也使用ActiveSupport :: TestCase的rails项目中没有这个问题.此外,我使用Fabricator生成我的测试数据,但这并不能真正解释这个错误.
所以事情是这样的: use_transactional_filters 是 /rails/test_helper.rb 中定义的方法
module ActiveRecord
module TestFixtures
extend ActiveSupport::Concern
included do
class_attribute :use_instantiated_fixtures # true, false, or :no_instances
end
end
end
Run Code Online (Sandbox Code Playgroud)
所以实际上它是 ActiveRecord 特定的。由于我没有在项目中使用 ActiveRecord,因此这没有任何效果,并且我必须找到另一种方法来在测试运行之间清除数据库。
| 归档时间: |
|
| 查看次数: |
4018 次 |
| 最近记录: |