Здравствуйте, я хочу провести функциональное тестирование моего приложения на Rails 3, в котором используются Devise и CanCan.
В моей модели User у меня есть возраст пользователей, я хочу проверить, что пользователь может посещать определенную страницу, только если он:
- Войти
- Более 35
Я видел в документе Devise, что я могу использовать: * sign_in *, и я поместил его в свои тесты, и, похоже, он работает - тест не дает ошибок, потому что у меня есть:
include Devise::TestHelpers
в моем * 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: jez@example.com
age: 36
Он работает нормально в процессе разработки, когда я вхожу вручную, но я надеюсь автоматизировать все это - точка тестирования действительно !!