Este pacote é uma coleção de ferramentas que facilitam alguns trabalhos de teste de unidade.
JoomlaTestTestHelper
é uma classe auxiliar estática que pode ser usada para aliviar um pouco a dor de tarefas repetitivas durante testes de unidade com PHPUnit.
Existem dois métodos que ajudam com objetos simulados do PHPUnit.
TestHelper::assignMockCallbacks
Este método auxiliar fornece uma maneira fácil de configurar retornos de chamada simulados em massa.
use JoomlaTestTestHelper;class FooTest estende PHPUnit_Framework_TestCase { função pública testFoo() { // Cria o mock.$mockFoo = $this->getMock( 'Foo', // Métodos array.array(), // Construtor argumentos.array(), // Nome da classe simulada.'', // Chamada construtor original.false ); $mockCallbacks = array( // 'Nome do método' => <callback>'method1' => array('mockFoo', 'method1'), 'method2' => array($this, 'mockMethod2'), ); TestHelper::assignMockCallbacks($mockFoo, $this, $mockCallbacks); } função pública mockMethod2($valor) { return strtolower($valor); } }
TestHelper::assignMockReturns
Este método auxiliar fornece uma maneira fácil de configurar valores de retornos simulados em massa.
use JoomlaTestTestHelper;class FooTest estende PHPUnit_Framework_TestCase { função pública testFoo() { // Cria o mock.$mockFoo = $this->getMock( 'Foo', // Métodos array.array(), // Construtor argumentos.array(), // Nome da classe simulada.'', // Chamada construtor original.false ); $mockReturns = array( // 'Nome do método' => 'Valor de retorno fixo''method1' => 'resultado fixo 1', 'método2' => 'resultado fixo 2', 'método3' => 'resultado fixo 3' , ); TestHelper::assignMockReturns($mockFoo, $this, $mockReturns); } }
Existem três métodos que ajudam na reflexão.
TestHelper::getValue
O método TestHelper::getValue
permite obter o valor de qualquer propriedade protegida ou privada.
use JoomlaTestTestHelper;class FooTest estende PHPUnit_Framework_TestCase { função pública testFoo() { $instancia = new Foo; // Obtém o valor de uma propriedade `bar` protegida.$value = TestHelper::getValue($instance, 'bar'); } }
Este método deve ser usado com moderação. Geralmente é mais apropriado usar os métodos assertAttribute*
do PHPunit.
TestHelper::setValue
O método TestHelper::setValue
permite definir o valor de qualquer propriedade protegida ou privada.
use JoomlaTestTestHelper;class FooTest estende PHPUnit_Framework_TestCase { função pública testFoo() { $instancia = new Foo; // Define o valor de uma propriedade `bar` protegida. TestHelper::setValue($instance, 'bar', 'Novo Valor'); } }
Este método é útil para injetar valores em um objeto com a finalidade de testar métodos getter.
TestHelper::invoke
O método TestHelper::invoke
permite invocar qualquer método protegido ou privado. Depois de especificar o objeto e o nome do método, quaisquer argumentos restantes são passados para o método que está sendo invocado.
use JoomlaTestTestHelper;class FooTest estende PHPUnit_Framework_TestCase { função pública testFoo() { $instancia = new Foo; // Invoca o método `bar` protegido.$value1 = TestHelper::invoke($instance, 'bar'); // Invoque o método `bar` protegido com argumentos.$value2 = TestHelper::invoke($instance, 'bar', 'arg1', 'arg2'); } }
Adicione "joomla/test": "~2.0"
ao bloco require em seu compositor.json e execute composer install
.
{ "exigir": { "joomla/teste": "~2.0" } }
Alternativamente, você pode simplesmente executar o seguinte na linha de comando:
compositor requer joomla/teste "~2.0"