У меня есть эта проблема с тестированием, у меня есть логика, которая меняет позиции, например, если у меня есть 1, 2, 3 и я даю для 3 позиции 1, чем 1, 2 станет 2, 3. Теперь я пытаюсь проверить это, но я не могу понять это!rspec изменяющий атрибут не меняет другие записи
Вот мои тесты:
describe "order change" do
let(:city){FactoryGirl.create(:city)}
let(:place){FactoryGirl.create(:place, city_id: city.id)}
let(:place_sec){FactoryGirl.create(:place, city_id: city.id)}
let(:place_th){FactoryGirl.create(:place, city_id: city.id)}
context "when editing record" do
it "should go up and change middle records" do
place
place_sec
place_th
expect{
place_id = Place.find(place.id)
place_id.update_attributes(item_position: 3)
}.to change(Place.find(place_sec.id), :item_position).from(2).to(1)
end
end
Это не работает, что мне нужно сделать для этого, чтобы работать? Метод для переупорядочения вызывается с обратным вызовом before_save
'place \ n place_sec \ n place_th' это вы призвали действительно создавать записи? Итак, 'cite' создает где-то поверх? (Я не знаю, что это хорошо). Существует разница между 'let' и' let! ', Возможно, вы должны использовать последний. – zishe
Хм, я пробовал это, я буду читать больше, но вкратце ничего не изменилось! – user2945241