CakePHP 2.3 - Unidad de prueba de inicio de sesión de usuario

Pensé que tengo que pedir aquí algo de ayuda para mi problema. He pasado toda la noche con esto. Tengo un método de inicio de sesión enUsersController Me gusta esto:

public function login() {

        if ( $this->request->is( 'post' ) ) {
            if ( $this->Auth->login() ) {
                $this->redirect( array( 'controller' => 'reservations', 'action' => 'index' ) );
            } else {
                $this->Session->setFlash( __( 'Login error.' ), 'flashError' );
            }
        }
    }

Estoy tratando de probar esto conPHPUnit, así que puedo estar seguro de que solo los usuarios válidos pueden iniciar sesión → después de un inicio de sesión exitoso, serán redirigidos a una página específica. Aquí está mitestLogin método enUsersControllerTest clase:

function testLogin() {

        $UsersController = $this->generate( 'Users', array(
                'components' => array(
                    'Auth' => array( 'user' )
                ),
            )
        );

        $UsersController->Auth->expects( $this->any() )
        ->method( 'user' )
        ->with( 'id' )
        ->will( $this->returnValue( 2 ) );

        $data = array( 'User' => array(
                'student_number' => 1111111,
                'password' => 'qwerty'
            ) );

        //$UsersController->Auth->login( $data['User'] );

        $this->testAction( '/users/login', array( 'data' => $data, 'method' => 'get' ) );
        $url = parse_url( $this->headers['Location'] );
        $this->assertEquals( $url['path'], '/reservations' );
    }

Todavía estoy aprendiendo los conceptos básicos de las pruebas de unidad con CakePHP. Me sale este error:

PHPUNIT_FRAMEWORK_ERROR_NOTICE
Undefined index: Location
Test case: UsersControllerTest(testLogin)

No tengo idea de qué causa esto ... ¿Qué hay de malo en mi método de prueba y cómo debería escribirse?

¡Gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta