Привет, я хочу выполнить некоторое функциональное тестирование моего приложения 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: [email protected]
age: 36
Он работает нормально в разработке, когда я вручную вхожу, но я надеюсь автоматизировать все это - точка тестирования действительно!!