Неинициализированная постоянная ошибка: Factory Girl
Uninitialized constant Production::POverview (NameError)
from /Users/simon_zhu/.rvm/gems/ruby-2.1.0/gems/factory_girl-4.4.0/lib/factory_girl/syntax/default.rb:49:in `instance_eval'
from /Users/simon_zhu/.rvm/gems/ruby-2.1.0/gems/factory_girl-4.4.0/lib/factory_girl/syntax/default.rb:49:in `run'
from /Users/simon_zhu/.rvm/gems/ruby-2.1.0/gems/factory_girl-4.4.0/lib/factory_girl/syntax/default.rb:7:in `define'
from /Users/simon_zhu/Documents/original_version_carmel/carmel/spec/factories/poverview.rb:1:in `<top (required)>'
from /Users/simon_zhu/.rvm/gems/ruby-2.1.0/gems/factory_girl-4.4.0/lib/factory_girl/find_definitions.rb:20:in `block (2 levels) in find_definitions'
from /Users/simon_zhu/.rvm/gems/ruby-2.1.0/gems/factory_girl-4.4.0/lib/factory_girl/find_definitions.rb:19:in `each'
У меня есть следующий код:
poverview.rb (фабрика)
FactoryGirl.define do
factory :poverview, class: Production::POverview do
name "test"
status ["p", "d", "m"]
end
end
p_overview_controller_spec.rb (spec)
require 'spec_helper'
describe Production::POverviewController do
login_user
# GET Request to pod_info
describe 'GET pod_info' do
before(:each) do
@pods = Factory(:poverview)
get 'show', :format => :json, :name => @pods.name
get 'show', :format => :json, :status => @pods.status
end
it "should return the correct company when correct id is passed" do
body = JSON.parse(response.body)
for(pod in body[0])
if(pod['name'].eql? @pod.name)
@pod.status.should.include? pod['status']
end
end
end
end
Я впервые пишу интеграционный тест для Factory Girl, и у меня есть эта неинициализированная постоянная ошибка.
Любые идеи, как решить эту проблему?
1 ответ
Также ваша тестовая настройка выглядит очень странно. Похоже, вы путаете интеграцию и тестирование контроллера.
Вот пост, чтобы вы начали. Я рекомендую сделать еще несколько исследований по тестированию в рельсах. https://semaphoreapp.com/blog/2014/02/11/rails-testing-antipatterns-controllers.html