(это будет работать для всех тестов контроллеров):
т, я хочу провести функциональное тестирование моего приложения на Rails 3, которое использует Devise и CanCan.
В моей модели User у меня есть возраст пользователей, и я хочу проверить, что пользователь может посещать только определенную страницу, если он:
Войти в системуБолее 35Я видел в документе Devise, что я могу использовать: * sign_in *, и я поместил его в свои тесты, и он, кажется, работает - тест не дает ошибок, потому что у меня есть:
include Devise::TestHelpers
в моем * test_helper.rb *
Когда я вынимаю его, мой тест делает ошибку, потому что * sign_in * не определен. Так что это не проблема помощника.
Когда я запускаю тест и проверяю,пролет # LoggedIn есть одно вхождение, тест не пройден, потому что есть 0 вхождений.пролет # 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
Он работает нормально при разработке, когда я вручную захожу, но я надеюсь автоматизировать все это - точка тестирования действительно !!