RSpec으로 rails 앱 테스트

2989 단어 RSpecRubyOnRails5.2

테스트 코드 오류 해결



현재 rails에서 작성중인 앱에서 devise에 의한 user 관리 기능을 개선하고 있습니다.
그 때 테스트 코드가 통과하지 않는다는 현상이 있었습니다.
원인은 섬세한 실수였지만, 흔한 일이 아닐까 생각합니다.

하고 싶었던 일



사용자 관리 기능에서 activehash를 사용하여 사용자가 도도부현을 등록할 수 있도록 시도했습니다.

모델



우선, prefecture의 모델을 준비
users와의 연관을 설명합니다.
user측에는 prefecture와의 어소시에이션 belongs to를 기술합니다.


사용자측에서는 밸리데이션의 설정을 합니다.
1을 선택하지 않으면 등록할 수 없도록 1 이외의 입력을 요구합니다.



spec



이어서 spec
우선 factories
사용자 정보에 prefecture_id 항목을 추가합니다.
이것으로 생성되는 사용자 정보에는 도도부현이 포함됩니다.


그런 다음 테스트 코드
저장할 수 있는 케이스와 할 수 없는 케이스 추가



준비가 되었으므로 테스트 실행!
그러면

오류 발생





오류가 나왔습니다.
모든 정보가 생성 된 것 같습니다.

이번에 만난 것은 prefecture 관계뿐이므로 prefecture 주위를 찾아 보겠습니다.

해결



수상한 곳을 발견했습니다.

유효성 검사가 prefecture입니다.
그러나 이번에는 id로 관리하고 있습니다.
거기서



유효성 검사를 prefecture_id로 변경해 보았습니다.

다시 테스트하면


안전 테스트가 통과했습니다!

끝에



알고 보면 단순한 실수에서도 일어났을 때는 상당히 눈치 채지 않는 것이군요.
작은 실수로도 테스트가 통과되지 않는다는 것을 경험할 수있는 좋은 기회였습니다.
또, 이번은 검증 에리어가 좁았기 때문에, 비교적 빨리 해결할 수 있었다고 생각합니다.
정기적 인 검증은 필수적입니다.

좋은 웹페이지 즐겨찾기