Я использую ActiveRecord с Sinatra вместо Rails, и я хочу использовать приборы в своих тестах. Документация ActiveRecord's FixtureSet говорит, что вы должны использовать fixture_path
сказать ему, где арматура файлы:Конфигурирование fixture_path в тестах ActiveRecord
помещен в каталоге, назначенный ActiveSupport :: TestCase.fixture_path = (путь)
Как может Я пишу в эту настройку? Я пробовал @fixture_path
и @@fixture_path
, но оба они оставили значение nil, когда FixtureSet
попытался его прочитать.
Вот единственное, что я мог работать, но это не может быть прав:
# test_helper.rb
require_relative '../app'
require 'minitest/autorun'
require 'active_record'
ActiveRecord::Base.establish_connection(:test)
#Set up fixtures and such
class ActiveSupport::TestCase
include ActiveRecord::TestFixtures
include ActiveRecord::TestFixtures::ClassMethods
class << self
def fixtures(*fixture_set_names)
self.fixture_path = 'test/fixtures'
super *fixture_set_names
end
end
self.use_transactional_fixtures = true
self.use_instantiated_fixtures = false
end
Полный исходный код размещен в small demo project для ActiveRecord и Синатры.
Спасибо за объяснение. Я заметил «class_attribute», но не собрал все это вместе. –