我不明白爲什麼我在2規格記錄不回滾: 我有2個表,縣內的has_many醫院爲什麼factoryGirl生成後不回滾並保存在rspec的
require "rails_helper"
RSpec.describe Hospital, type: :model, focus: true do
context "created along with new hospital created" do
it "should create new hospital" do
@prefecture = FactoryGirl.create(:prefecture)
hospital = FactoryGirl.build(:hospital, id: 10, prefecture: @prefecture)
expect { hospital.save }.to change { Hospital.count }.by 1
end
it "should save" do
@prefecture = FactoryGirl.create(:prefecture)
hospital = FactoryGirl.build(:hospital, id: 10, prefecture: @prefecture)
hospital.save
end
end
end
如果我運行將顯示錯誤「id = 10存在於db」 任何人都可以解釋我錯在哪裏? 謝謝。
在你的'spec_helper.rb'中,你有'config.use_transactional_fixtures = true'嗎? – Hoa
@Hoa不,我試圖使用該命令,但它顯示我錯誤。如果我在醫院建築中刪除「id:10」,那麼它會通過,但我不知道爲什麼。 – Hung
沒有這種配置,所有測試中都會重複使用相同的數據。這就是爲什麼在第二次測試中無法保存id = 10的另一家醫院,因爲您已經從第一次測試中創建了一個。如果你刪除了id = 10,當然這是有效的,因爲現在你有兩家醫院有不同的ID(沒有ID衝突)。添加配置時出現什麼錯誤? – Hoa