José Galisteo Ruiz

10/01/2011

Testear una vista de Devise

Devise es un sistema completo de autenticación de usuarios, y a diferencia de otras gemas esta se encarga de todo, modelo, vista y controlador.

Si queremos modificar las vistas para adaptarlas a nuestro diseño o funcionalidad podrás generarlas con la siguiente tarea rake:

rake devise:views

Luego para asegurarnos de que no rompemos nada lo mejor es testear las acciones que Devise pone a nuestra disposición.

Al test_helper.rb añadimos.

class ActionController::TestCase
  include Devise::TestHelpers
end

Los test funcionales que tendremos que crear serán del estilo:

  • functional/devise/registrations_controller_test.rb
  • functional/devise/sessions_controller_test.rb
  • functional/devise/passwords_controller_test.rb

Y en cada test metemos de estos ficheros o en un setup las siguientes lineas de código:

setup_controller_for_warden
request.env["devise.mapping"] = Devise.mappings[:user]

Como ejemplo dejo lo que sería un test muy sencillo:

require 'test_helper'

class Devise::PasswordsControllerTest < ActionController::TestCase

  def setup
    setup_controller_for_warden
    request.env["devise.mapping"] = Devise.mappings[:user]
  end

  test "process :new" do
    process :new
    assert_response :success, @response.body
  end

end
blog comments powered by Disqus