У меня есть следующий класс:Rspec: Как создать макет ассоциации
class Company < ActiveRecord::Base
validates :name, :presence => true
has_many :employees, :dependent => :destroy
end
class Employee < ActiveRecord::Base
validates :first_name, :presence => true
validates :last_name, :presence => true
validates :company, :presence => true
belongs_to :company
end
Я пишу тест для Employee
класса, так что я пытаюсь создать double
для Company
, который будет использоваться Employee
.
Ниже фрагмент кода для моего Rspec
let(:company) { double(Company) }
let(:employee) { Employee.new(:first_name => 'Tom', :last_name => 'Smith', :company => company) }
context 'valid Employee' do
it 'will pass validation' do
expect(employee).to be_valid
end
it 'will have no error message' do
expect(employee.errors.count).to eq(0)
end
it 'will save employee to database' do
expect{employee.save}.to change{Employee.count}.from(0).to(1)
end
end
я получаю следующее сообщение об ошибке для всех моих 3 тестов
ActiveRecord::AssociationTypeMismatch:
Company(#70364315335080) expected, got RSpec::Mocks::Double(#70364252187580)
Я думаю, как я пытаюсь создать double
неправильно. Не могли бы вы посоветовать мне, как создать double of Company
, который может использоваться Employee
в качестве их ассоциации.
Я не использую FactoryGirl
.
Большое спасибо.