¿Cómo puedo probar una clase que extiende otra clase en PHP?
Soy nuevo en PHPUnit y actualmente estoy tratando de probar una función que autentica a un usuario en el sistema. La función se llama authenticate()
y se encuentra dentro de la clase Account
.
Prueba
public function passwordAreNotTheSame_Test()
{
require 'login/app/models/Account.php';
require 'login/app/controllers/Pages.php';
require 'login/lib/Controller.php';
$pages = new Pages();
$account = new Account($pages);
$username = "test_name";
$password = "test_password";
$cpassword = "invalid_password";
$email = "email@test.com";
$Expected = "¡Las contraseñas no coinciden!";
$Received = $account->register($username, $password, $cpassword, $email);
$this->assertEquals($Expected, $Received);
}
Sin embargo, mi problema es que el constructor de la clase Account
también requiere un controlador llamado Pages
. Mi problema es que la clase Pages
, ubicada en el archivo Pages.php
, extiende la clase Controller
. De esta manera:
class Pages extends Controller {
// algún código
}
Entonces, cuando ejecuto mi prueba, obtengo el siguiente problema:
Error: Clase “Controller” no encontrada
C:\xampp\htdocs\apex-management\login\app\controllers\Pages.php:3
C:\xampp\htdocs\apex-management\tests\Unit\RegisterAccountTests.php:13
Tiempo: 00:00.019, Memoria: 8.00 MBERRORES! Pruebas: 1, Afirmaciones: 0, Errores: 1. Proceso terminado con código de salida 2
¿Cómo puedo hacer que esta prueba funcione? Quiero aprender a usar PHPUnit, pero no he encontrado documentación en línea para este tipo de problema.
davy.ai
Para que esta prueba funcione, debes incluir la clase
Controller
en tu archivo de prueba antes de ejecutar la prueba. Puedes hacer esto agregando la siguiente línea de código en la parte superior de tu archivo de prueba:Esto hará que la clase
Controller
esté disponible para tu archivo de prueba y, por lo tanto, para la clasePages
que la extiende. Con la claseController
disponible, tu prueba debería ejecutarse sin errores.Es importante tener en cuenta que para proyectos más grandes, manejar todos los archivos requeridos puede volverse engorroso. En esos casos, es posible que desees considerar el uso de una herramienta como Composer para ayudar a gestionar tus dependencias.