Este paquete es una colección de herramientas que facilitan algunos de los trabajos de pruebas unitarias.
JoomlaTestTestHelper
es una clase auxiliar estática que se puede utilizar para aliviar algunas tareas repetitivas durante las pruebas unitarias con PHPUnit.
Hay dos métodos que ayudan con los objetos simulados de PHPUnit.
TestHelper::assignMockCallbacks
Este método auxiliar proporciona una manera fácil de configurar devoluciones de llamadas simuladas de forma masiva.
utilice JoomlaTestTestHelper; la clase FooTest extiende PHPUnit_Framework_TestCase { función pública testFoo() { // Crea el simulacro.$mockFoo = $this->getMock( 'Foo', // Métodos array.array(), // Constructor arguments.array(), // Nombre de clase simulada.'', // Llamada constructor original.falso ); $mockCallbacks = array( // 'Nombre del método' => <devolución de llamada>'método1' => array('mockFoo', 'método1'), 'método2' => array($this, 'mockMethod2'), ); TestHelper::assignMockCallbacks($mockFoo, $this, $mockCallbacks); } función pública simulacroMetodo2($valor) { return strtolower($valor); } }
TestHelper::assignMockReturns
Este método auxiliar proporciona una manera fácil de configurar valores de devoluciones simuladas de forma masiva.
utilice JoomlaTestTestHelper; la clase FooTest extiende PHPUnit_Framework_TestCase { función pública testFoo() { // Crea el simulacro.$mockFoo = $this->getMock( 'Foo', // Métodos array.array(), // Constructor arguments.array(), // Nombre de clase simulada.'', // Llamada constructor original.falso ); $mockReturns = array( // 'Nombre del método' => 'Valor de retorno predeterminado''método1' => 'resultado predeterminado 1', 'método2' => 'resultado predeterminado 2', 'método3' => 'resultado predeterminado 3' , ); TestHelper::assignMockReturns($mockFoo, $this, $mockReturns); } }
Hay tres métodos que ayudan con la reflexión.
TestHelper::getValue
El método TestHelper::getValue
le permite obtener el valor de cualquier propiedad privada o protegida.
utilice JoomlaTestTestHelper; la clase FooTest extiende PHPUnit_Framework_TestCase { función pública testFoo() { $instancia = nuevo Foo; // Obtener el valor de una propiedad `bar` protegida.$value = TestHelper::getValue($instance, 'bar'); } }
Este método debe usarse con moderación. Generalmente es más apropiado utilizar los métodos assertAttribute*
de PHPunit.
TestHelper::setValue
El método TestHelper::setValue
le permite establecer el valor de cualquier propiedad privada o protegida.
utilice JoomlaTestTestHelper; la clase FooTest extiende PHPUnit_Framework_TestCase { función pública testFoo() { $instancia = nuevo Foo; // Establece el valor de una propiedad `bar` protegida. TestHelper::setValue($instancia, 'barra', 'Nuevo valor'); } }
Este método es útil para inyectar valores en un objeto con el fin de probar métodos getter.
TestHelper::invoke
El método TestHelper::invoke
le permite invocar cualquier método privado o protegido. Después de especificar el objeto y el nombre del método, los argumentos restantes se pasan al método que se invoca.
utilice JoomlaTestTestHelper; la clase FooTest extiende PHPUnit_Framework_TestCase { función pública testFoo() { $instancia = nuevo Foo; // Invocar el método `bar` protegido.$value1 = TestHelper::invoke($instance, 'bar'); // Invocar el método `bar` protegido con argumentos.$value2 = TestHelper::invoke($instance, 'bar', 'arg1', 'arg2'); } }
Agregue "joomla/test": "~2.0"
al bloque require en su Composer.json y luego ejecute composer install
.
{ "requerir": { "joomla/prueba": "~2.0" } }
Alternativamente, puedes simplemente ejecutar lo siguiente desde la línea de comando:
el compositor requiere joomla/test "~2.0"