안녕하세요, Devise와 CanCan을 사용하는 Rails 3 앱의 기능 테스트를하고 싶습니다. 내 사용자 모델에서Rails 및 Devise를 사용한 기능 테스트. 내 비품에 무엇을 넣어야합니까?
나는 나는 그들이 경우 사용자는 특정 페이지를 방문 할 수 있는지 테스트하려면, 사용자의 연령이 :
- 은 로그인 한
35 나는 Devise 문서에서 다음을 사용할 수 있음을 보았습니다 : * sign_in * 그리고 나는 그것을 내 테스트에 넣었습니다. 나는 가지고 있기 때문에 테스트에 오류가 없습니다.
내 * test_helper.rb *
* * sign_in *이 정의되지 않았기 때문에 테스트를 수행 할 때 오류가 발생합니다. 그래서 도우미 문제는 아닙니다.
테스트를 실행하고 span # loggedin에 발생이 하나 있는지 확인하려면 0 번 발생하므로 테스트가 실패합니다. span # loggedin 만 표시 * user_signed_in 인 경우 *
등록 된 사용자 (확인 된 사용자) 인 테스트 사용자를 만들기 위해 필자의 설비 또는 테스트를 수행하려면 무엇이 필요합니까?
보기 코드 :
<% if user_signed_in? %>
<span id="loggedin">User is signed in</span>
User age is <span id="age"><%= current_user.age.to_s %></span>
<% end %>
시험 코드 :
test "should get index" do
sign_in :one
get :index
assert_response :success
assert_select 'span#loggedin', :count => 1
end
기구 : 나는 수동으로 로그인 할 때
one:
email: [email protected]
age: 36
이 개발 괜찮 작동하지만 나는 그것을 자동화 할 수 바라고 있어요 모두 - 테스트의 요점 !!
조명기에서 ERB를 사용하면 조명기를 쉽게 유지 보수하는 데 도움이됩니다. Fixgure 대신 FactoryGirl과 같은 도구를 사용하면 테스트를 쉽게 유지할 수 있지만 테스트 속도가 크게 떨어집니다. – iain
필자의 설비에서 ERB를 사용하는 것에 대해 알고 있지만 위의 설비를 생성하려면 ERB는 무엇이 필요합니까? 그게 내 질문의 핵심 이었어. 구체적으로 내 비품에 넣어야 할게 뭐야? –
나는 이것이 노인이라고 알고 있지만 비슷한 시나리오에서 도움을 구하는 것에 비틀 거렸다. 내 실험에 따르면 단순히 'confirmed_at' 타임 스탬프를 조명기에 추가하는 것이 트릭을 수행하는 것으로 보입니다. – Chris