Этот пакет представляет собой набор инструментов, которые упрощают некоторые задачи модульного тестирования.
JoomlaTestTestHelper
— это статический вспомогательный класс, который можно использовать, чтобы облегчить выполнение повторяющихся задач во время модульного тестирования с помощью PHPUnit.
Есть два метода, которые помогают с макетными объектами PHPUnit.
TestHelper::assignMockCallbacks
Этот вспомогательный метод предоставляет простой способ массовой настройки фиктивных обратных вызовов.
используйте JoomlaTestTestHelper; класс FooTest расширяет PHPUnit_Framework_TestCase { публичная функция testFoo() { // Создаём макет.$mockFoo = $this->getMock( 'Foo', // Методы array.array(), // Аргументы конструктора.array(), // Имя макетного класса.'', // Вызов оригинальный конструктор.false ); $mockCallbacks = array( // 'Имя метода' => <callback>'method1' => array('mockFoo', 'method1'), 'method2' => array($this, 'mockMethod2'), ); TestHelper::assignMockCallbacks($mockFoo, $this, $mockCallbacks); } Публичная функцияockMethod2($value) { return strtolower($value); } }
TestHelper::assignMockReturns
Этот вспомогательный метод обеспечивает простой способ массовой настройки ложных возвращаемых значений.
используйте JoomlaTestTestHelper; класс FooTest расширяет PHPUnit_Framework_TestCase { публичная функция testFoo() { // Создаём макет.$mockFoo = $this->getMock( 'Foo', // Методы array.array(), // Аргументы конструктора.array(), // Имя макетного класса.'', // Вызов оригинальный конструктор.false ); $mockReturns = array( // 'Имя метода' => 'Консервированное возвращаемое значение''method1' => 'стандартный результат 1', 'method2' => 'стандартный результат 2', 'method3' => 'стандартный результат 3' , ); TestHelper::assignMockReturns($mockFoo, $this, $mockReturns); } }
Есть три метода, которые помогают в размышлении.
TestHelper::getValue
Метод TestHelper::getValue
позволяет получить значение любого защищенного или частного свойства.
используйте JoomlaTestTestHelper; класс FooTest расширяет PHPUnit_Framework_TestCase { публичная функция testFoo() {$instance = новый Foo; // Получаем значение защищенного свойства `bar`.$value = TestHelper::getValue($instance, 'bar'); } }
Этот метод следует использовать с осторожностью. Обычно более уместно использовать методы PHPunit assertAttribute*
.
TestHelper::setValue
Метод TestHelper::setValue
позволяет вам установить значение любого защищенного или частного свойства.
используйте JoomlaTestTestHelper; класс FooTest расширяет PHPUnit_Framework_TestCase { публичная функция testFoo() {$instance = новый Foo; // Устанавливаем значение защищенного свойства bar. TestHelper::setValue($instance, 'bar', 'Новое значение'); } }
Этот метод полезен для ввода значений в объект с целью тестирования методов получения.
TestHelper::invoke
TestHelper::invoke
позволяет вызывать любой защищенный или закрытый метод. После указания объекта и имени метода все оставшиеся аргументы передаются вызываемому методу.
используйте JoomlaTestTestHelper; класс FooTest расширяет PHPUnit_Framework_TestCase { публичная функция testFoo() {$instance = новый Foo; // Вызов защищенного метода bar.$value1 = TestHelper::invoke($instance, 'bar'); // Вызов защищенного метода bar с аргументами.$value2 = TestHelper::invoke($instance, 'bar', 'arg1', 'arg2'); } }
Добавьте "joomla/test": "~2.0"
в блок require в вашем композиторе.json, а затем запустите composer install
.
{ "require": { "joomla/test": "~2.0" } }
Альтернативно вы можете просто запустить следующее из командной строки:
композитору требуется joomla/test "~2.0"