М. 9 Мои ошибки в тестах - Evanto/qna GitHub Wiki
Создаваемые в этом задании тесты:
- spec/factories/votes.rb
- spec/models/vote_spec.rb
- spec/controllers/votes_controller_spec.rb
- spec/acceptance/vote_answer_spec.rb
- spec/acceptance/vote_question_spec.rb
votes_controller_spec.rb
- Перенесла expect на другую строку для удобства чтения, но это оказалось ошибкой. Было:
it 'saves a new downvote to the db' do
expect { post :create, params: { value: -1, votable_id: answer.id, votable_type: "Answer" }, format: :js }.to
change(Vote, :count).by(1)
end
Правильно:
it 'saves a new downvote to the db' do
expect { post :create, params: { value: -1, votable_id: answer.id, votable_type: "Answer" }, format: :js }.to change(Vote, :count).by(1)
end
- Поставила везде везде
.to_not, а надо.not_to - Везде, где
.to_not, прописала цифру, на сколько не должен меняться объект, а это не надо писать - он просто не должен меняться, ни ка сколько. Было:.not_to change(Vote, :count).by(-1), а надо:.not_to change(Vote, :count) - Логинила юзера через
sign_in_user, а надоsign_in(user)
acceptance/vote_answer_spec.rb
- Написала везде
js: :true, а надоjs: true - Написала
sign_in_user, а надоsign_in(user) - Поставила блоки первого теста в порядке
Up,Down,Reset- естественно, они не проходили, т.к. послеUpнельзя сразу сделатьDownбезReset, пришлось поменять порядок.
acceptance/vote_question_spec.rb
- Написала везде
visit question_path, а надоvisit questions_path(т.е. посещалась страница show вопроса, а должна - страница index всех вопросов)