(это будет работать для всех тестов контроллеров):

т, я хочу провести функциональное тестирование моего приложения на 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

Он работает нормально при разработке, когда я вручную захожу, но я надеюсь автоматизировать все это - точка тестирования действительно !!

Ответы на вопрос(1)

Ваш ответ на вопрос