Variable de sesión en tests funcionales (o ¿cómo simular

Hola lista, me estoy poniendo las pilas en esto del TDD y la verdad es
que engancha :slight_smile: pero estoy atascado con una cosita…

Pongamos que tienes un controlador, recién generado con un scaffold,
para administrar los libros de una librería… recién creado, pasa su
test funcional como era de esperar.

Pero pongamos ahora que metes un sistema rudimentario de
autenticaciónde usuarios para controlar el acceso a ese controlador con un:

before_filter :expulsar_si_no_autenticado

donde, básicamente, expulsar_si_no_autenticado comprueba si la
variable de sesión “session[:autenticado]” es true, porque ya has
pasado por el formulario de acceso, y si no, te expulsa…

Vale, pues al poner esto, el test funcional para este controlador
falla, como es normal, porque ninguna de las acciones consiguen hacer
nada ya que no se saben la clave…

¿Cómo puedo simular en este test que el usuario ya se ha autenticado?
Mi idea era meter en poner a true esta variable en el setup, pero no
le gusta la idea. O sea…

def setup
(…)
session[:autenticado] = true
(…)
end

Y al ejecutar el test, dice que…

  1. Error:
    test_create(Admin::LibrosControllerTest):
    TypeError: Symbol as array index
    test/functional/admin/libros_controller_test.rb:15:in []=' test/functional/admin/libros_controller_test.rb:15:insetup_without_fixtures’
    /home/jaime/bin/radrails/workspace/libreria/config/…/vendor/rails/activerecord/lib/active_record/fixtures.rb:576:in
    `setup’

On 9/5/07, Jaime I. [email protected] wrote:

le gusta la idea. O sea…
test_create(Admin::LibrosControllerTest):
TypeError: Symbol as array index
test/functional/admin/libros_controller_test.rb:15:in []=' test/functional/admin/libros_controller_test.rb:15:insetup_without_fixtures’
/home/jaime/bin/radrails/workspace/libreria/config/…/vendor/rails/activerecord/lib/active_record/fixtures.rb:576:in
`setup’

La forma de hacerlo es:

@request.session[:autenticado] = true

Estabas cerca :).

2007/9/6, Daniel R. Troitiño [email protected]:

La forma de hacerlo es:

@request.session[:autenticado] = true

Estabas cerca :).

Muchas gracias!

Todo vuelve a funcionar con 3 en 1:

Started

Finished in 0.217536 seconds.

8 tests, 26 assertions, 0 failures, 0 errors

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs