Estoy buscando incorporar un marco de prueba en un proyecto que estoy construyendo y encontré Enhance PHP que me gusta, pero estoy teniendo algunas dificultades para encontrar información relevante en línea ya que "mejorar php" es tal una frase de uso común.Comenzando con "Mejorar PHP"
¿Alguien ha trabajado con este marco que pueda orientarme hacia alguna guía útil? ¿Has trabajado con un marco de prueba de unidad que crees que es increíblemente mejor?
Gracias de antemano.
En respuesta a Gotzofter, esta es la clase a ensayar:
<?php
include_once('EnhanceTestFramework.php');
class ExampleClass
{
private $OtherClass;
function __construct($mock = null)
{
if ($mock == null)
$this->OtherClass = new OtherExampleClass();
else
$this->OtherClass = $mock;
}
public function doSomething()
{
return $this->OtherClass->getSomething(1, 'Arg2');
}
}
class OtherExampleClass
{
public function getSomething()
{
return "Something";
}
}
class ExampleClassTests extends \Enhance\TestFixture
{
public function setUp()
{
}
public function tearDown()
{
}
public function verifyWithAMock()
{
$mock = \Enhance\MockFactory::createMock('OtherExampleClass');
$mock->addExpectation(
\Enhance\Expect::method('getSomething')
->with(1, 'Arg2')
->returns('Something')
->times(1)
);
$target = new ExampleClass($mock);
$result = $target->doSomething();
\Enhance\Assert::areIdentical("Something", $result);
$mock->verifyExpectations();
}
}
\Enhance\Core::runTests();
vistazo a mi constructor para ExampleClass.
Dado que el ejemplo del sitio de enhance-php inyecta el objeto $ mock llamando al nuevo ExampleClass ($ mock), me veo forzado a cambiar mi constructor ExampleClass para manejar un $ mock como parámetro de entrada.
¿Debo manejar esto para todas las clases que deseo someter a pruebas unitarias con el marco?
Gracias.
[enhance-php.com] (http://www.enhance-php.com) contiene una [Guía de inicio rápido] (http://www.enhance-php.com/Content/Quick-Start-Guide /) y también parece que tienen [documentación decente sobre todas las características principales] (http://www.enhance-php.com/Content/Documentation/). ¿Qué estás buscando exactamente más allá de eso? –
[PHPUnit] (http://phpunit.de) es el marco de pruebas de unidades de hecho. TBH Nunca he oído hablar de Enhance (no tomes que es una sesión barata, solo ser honesto). –
@ Colin - Tal vez no entiendo el uso de Mock. Siguiendo las instrucciones en esa guía, no estoy obteniendo los resultados que espero. Añadiré un código a la publicación original – baiano