Получение атрибута NameError при запуске теста в Spork. Испытательные работы находят, если я не запускаю их в Spork. (Я бегу Spork через RubyMine 6.0)NameError при запуске теста rspec в Spork
ошибка:
NameError: uninitialized constant FileMakerSync::FMStudent
./app/sync/file_maker_sync.rb:7:in `load_student'
./spec/sync/file_maker_sync_spec.rb:8:in `block (4 levels) in <top (required)>'
Моя спецификация находится в:
спецификации/синхронизации/file_maker_sync_spec.rb
describe FileMakerSync do
describe "..." do
context "..." do
before(:all) do
@student = FileMakerSync.load_student('....')
end
...
end
end
end
Какие звонки
/app/sync/file_maker_sync.rb
class FileMakerSync
def self.load_student(student_id)
fm_student = FMStudent.find_single(student_id: student_id)
end
...
end
который называет
app/models/filemaker/fm_student.rb
class FMStudent < FMBase
def as_local_model
end
...
end
Я собирающий вопрос в том, что FMStudent правильно не загружается во время выполнения Spork. Который я не совсем понимаю.
Я новичок в рельсах и не совсем понимаю, когда требовать «имя файла» по сравнению с загружаемым по умолчанию. Также не то, что может отсутствовать в настройке spork.
Я попытался добавления требуют
require "app/models/filemaker/fm_student"
class FileMakerSync
, но чем я получил эту ошибку
Exception encountered: #<LoadError: cannot load such file -- app/models/filemaker/fm_student>
Наконец мой spec_helper
require 'rubygems'
require 'spork'
Spork.prefork do
if ENV["RUBYMINE_HOME"]
$:.unshift(File.expand_path("rb/testing/patch/common", ENV["RUBYMINE_HOME"]))
$:.unshift(File.expand_path("rb/testing/patch/bdd", ENV["RUBYMINE_HOME"]))
end
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
config.use_transactional_fixtures = true
config.infer_base_class_for_anonymous_controllers = false
config.order = "random"
config.include Capybara::DSL
#Mongoid database cleaner
config.before(:suite) do
DatabaseCleaner[:mongoid, {:connection => :unit_test}].strategy = :truncation
DatabaseCleaner[:mongoid, {:connection => :unit_test}].clean_with(:truncation)
end
config.before(:each) do
DatabaseCleaner[:mongoid, {:connection => :unit_test}].start
end
config.after(:each) do
DatabaseCleaner[:mongoid, {:connection => :unit_test}].clean
end
end
end
Spork.each_run do
# This code will be run each time you run your specs.
FactoryGirl.reload
end
Ditch Spork. Шутки в сторону. Ваша жизнь станет намного лучше. – sevenseacat