在运行我的单元测试时,我收到以下错误:
StandardError: No fixture with name 'abcd' found for table 'xyz'
我确实确保一个名为"abcd"的夹具实际上存在于test/fixtures/xyz.yml中
我的test_helper.rb 的内容
ENV["RAILS_ENV"] = "test"
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
require 'action_view/test_case'
class ActiveSupport::TestCase
unless Test::Unit::TestCase.const_defined?('FIXTURE_CLASS_MAP')
Test::Unit::TestCase::FIXTURE_CLASS_MAP = {
:feedback_forms => Feedback::Form,
}
end
self.use_transactional_fixtures = true
self.use_instantiated_fixtures = false
set_fixture_class FIXTURE_CLASS_MAP
end
请帮助我了解为什么会发生此错误。
更新:我刚刚发现,在运行测试时,DB中的记录被删除(对于该表),并且夹具文件中的记录入到DB表中。就我而言,并非所有记录都插入到表中(仅插入第一条记录) - 为什么会发生任何线索?
谢谢拉米亚
这是一个老问题,但我猜你没有指定相关的模型关联。除非您在 app/models/xyz.rb
中指定了以下内容,否则示例中的命名灯具将不起作用:
class XYZ < ActiveRecord::Base
belongs_to :abcd
end