Я получаю очень странную ошибку при запуске спецификации:
Failure/Error: entity = Factory.create(:entity, :name => "Test Entity", :creator => user)
ActiveRecord::AssociationTypeMismatch:
::User(#97318850) expected, got User(#92770800)
Это код, который приводит к вышеуказанной ошибке. Фабрика - фабричная фабрика.
user = Factory(:user, :username => "kai", :email => "xxx@yyy.com", :password => "testing")
entity = Factory.create(:entity, :name => "Test Entity", :creator => user)
Когда я использую :creator => User.first
, тогда все работает как положено. Я распечатал User.first
и user
, но не вижу разницы.
Любые предложения, что, черт возьми, здесь не так?
Обновление
Я также получил эту ошибку при запуске этой простой спецификации запроса
describe "Entities" do
it "should succeed" do
entity = Factory.create(:entity, :name => "Test Entity 1")
visit root_path
end
it "should also succeed" do
entity = Factory.create(:entity, :name => "Test Entity 2")
property = Factory.create(:property, :entity => entity)
end
end
На этот раз я получаю
Failure/Error: property = Factory.create(:property, :entity => entity)
ActiveRecord::AssociationTypeMismatch:
Entity(#103620190) expected, got Entity(#96047070)
когда я удаляю visit root_path
все работает нормально (также при запуске каждой спецификации самостоятельно). Это просто кажется проблемой для спецификации запроса. Другие спецификации (модель, контроллер), кажется, работают нормально. Я использую Capybara 1.0.0.beta1 и RSpec 2.5.
Что означает это число за именем класса?