0
나는 내 물건을 만들기 위해 공장 소녀를 사용하고 있습니다. 내가 슬롯을 덮어 그냥 factory_girl에 의해 만들어진 하나를 사용하지 않는 경우, 테스트를 통과하지 않습니다Rspec 변경 matcher 및 공장 girl
RSpec.describe V1::SlotsController, type: :controller do
let(:valid_slot) { create(:slot) }
let(:valid_attributes) { attributes_for(:slot) }
describe "DELETE destroy" do
it "destroys the requested slot" do
slot = Slot.create! valid_attributes # not working without this line
expect {
delete :destroy, { id: slot.id }
}.to change(Slot, :count).by(-1)
end
end
end
: 나는 다음해야 할 이유가 궁금하네요. 왜?
굉장, 고마워. 항상 let을 사용하는 것이 (성능 현명함) 저장됩니까! (예 : GET, PATCH) 필요한 경우에만 사용해야합니까 (예 : DELETE)? – einSelbst
빠른 테스트를 위해 테스트에 불필요한 레코드를 작성하지 마십시오. 예를 들어 expect 블록을 실행하기 전에'slot'을 생성해야합니다. 그러나 여기에서'let!'은'describe "DELETE destroy"를 벗어 났고, 더 많은 설명을 추가하면 사용되지 않더라도 매번'slot'이 생성됩니다. – gotva