Ответ 1

Ну, есть два способа тестирования на одном уровне устройства путем написания тестов в контроллерах, которые наследуют контроллер приложения. Код будет выглядеть примерно так:

it "should redirect to page_x after logged in" do
  sign_in :user_role, @user 
  set_devise_mapping(:user_role) 
  get :new 
  response.should redirect_to(user_roles_dashboard_path) 
end

Для огурца вам, вероятно, следует написать шаг, чтобы сделать логин и утвердить, если u находится на ожидаемой странице после sign_in.

Ответ 2

Hm... Думаю, вам нужно написать собственные тесты интеграции, чтобы проверить поведение. Нет необходимости в модульных тестах или функциональных тестах, если вы не испортили код разработки.