내 레일 애플리케이션에서 인증에 Clearance을 사용하고 있습니다. 기본 Minitest 스택을 사용하고 있습니다. 허가는 기본적으로 전자 메일 및 암호 필드 만 사용하므로 name
필드를 추가하고 이제는 단위 테스트를 통해 일부 검사를 수행하려고합니다.유닛 테스트 사용자 모델에 대해 레일 4에 클리어런스가있는 고정구 사용
이것은 지금까지 테스트 중입니다.
test "should not save without name" do
user = User.new
user.email = "[email protected]"
user.password = "foobar"
assert_not user.valid?
end
그리고 이것은 나의 모델 유효성 확인입니다.
validates :name, presence: true
모든 것이 잘 작동하고 테스트가 예상대로 실패합니다. 문제는 내가 사용자 정착물을 사용하여 약간의 테스트를 정리하고 싶다는 것입니다.
한 가지 가능한 방법은
john:
name: John
email: [email protected]
password: foobar
수 그러나 테스트 실행은 암호라는 필드가 아니라고 말하는 실패합니다. 사실이 필드는 encrypted_password
입니다. BCrypt::Password.create
메서드를 사용하여 하나를 만들 수 있지만 또 다른 오류는 remember_token
이 null 일 수 없다는 것을 나타내며, confirmation_token
필드에서도 같은 결과가 발생한다고 생각합니다. 제 질문은 이렇습니다.
클리어런스 인증 라이브러리를 사용하여 테스트에서 이러한 데이터를 사용하기위한 레일 고정 장치를 만들 수있는 방법이 있습니까?
업데이트 :
john:
name: John
email: [email protected]
encrypted_password: <%= BCrypt::Password.create("foobar", cost: 4) %>
remember_token: <%= Clearance::Token.new %>
을 그리고 그것은 마법처럼 작동, 그것 뿐이다 : 인해 결과 고정이 정답에 고정 예를 명확히하기 위해.
누락 된 부분이었습니다. 지금은 정상적으로 작동합니다. 감사합니다. –