Eche un vistazo a la idea de Dependency injection. En pocas palabras se debe alimentar a su código de lo que necesita Frente a ello obtener los datos que necesita ... He aquí un ejemplo:
ejemplo, sin la inyección de dependencias
function sanitize1() {
foreach($_POST as $k => $v) {
// code to sanitize $v
}
}
sanitize1();
ejemplo, con la inyección de dependencias
function sanitize2(array &$formData) {
foreach($formData as $k => $v) {
// code to sanitize $v
}
}
sanitize2($_POST);
Ver la diferencia? En su prueba PHPUnit puede pasar sanitize2()
una matriz asociativa de su elección; has inyectado la dependencia. Mientras que sanitize1()
se combina con $_POST
. $_POST
y $_GET
son matrices de asociación de todos modos, así que en su código de producción puede pasar $_GET
o $_POST
a su función, pero en las pruebas de su unidad codificaría algunos datos esperados.
Unidad ejemplo de prueba:
function testSanitize() {
$fakeFormData = array ('bio' => 'hi i\'m arin', 'location' => 'San Francisco');
sanitize($fakeFormData);
// assert something
}
Gracias por que - pensé que era probablemente la mejor solución. ¡Muy buena respuesta también! –
Gracias phatduckk. Simple pero efectivo! :) – nonshatter