|
|||||||
PHPUnit для начинающих. Тестовые «двойники»
Время создания: 19.04.2017 18:31
Текстовые метки: php, unit, test, PHPUnit, stubs, mocks
Раздел: Компьютер - Программирование - Язык PHP - PHPUnit
Запись: xintrea/mytetra_syncro/master/base/14926158992fjvj02hby/text.html на raw.github.com
|
|||||||
|
|||||||
Когда использовать двойников в тестах Как уже упоминалось в первой части данной серии статей, одной из мощнейших возможностей phpunit являются "двойники" для тестов. Очень часто в нашем коде функция одного класса вызывает функцию другого класса. В этом случае, мы имеем зависимость в этих двух классах. В частности, вызывающий класс имеет зависимость от вызываемого класса. Но как мы уже знаем из первой части, юнит-тест должен тестировать функциональную единицу, в этом случае, он должен проверить только в вызывающую функцию. Чтобы решить эту проблему, мы можем использовать "двойника" для подмены вызываемого класса. Так как двойник может быть настроен возвращать предопределенные результаты, мы можем сосредоточиться на тестировании в вызывающей функции. Типы тестовых "двойников" Тестовый "двойник" — это общий термин для объектов, которые мы используем, чтобы заменить реальные объекты. На наш взгляд, это очень полезно для классификации тестовых "двойников" по их назначению. Это не только облегчит нам понимание описанного тестируемого случая, но и сделает наш код более дружелюбным и читаемым для других. Опираясь на пост Мартина Фаулера , есть пять типов тестовых "двойников":
Как создать тестового "двойника" В PhpUnit метод getMockBuilder может быть использован для создания любых подобных объектов, определяемых пользователем. В сочетании с настраиваемым интерфейсом, мы можем использовать его, чтобы создать, по сути, все пять типов тестовых "двойников". Добавление "двойника" в наш первый unit-тест Не имеет смысла использовать "двойника" для тестов нашего калькулятора, поскольку в настоящее время калькулятор класса не имеет зависимостей от других классов. Однако, чтобы продемонстрировать, как использовать "двойников" с помощью PhpUnit, мы создадим stub для класса Calculator и протестируем его. Давайте добавим тест под названием testWithStub в наш существующий класс: public function testWithStub() { // Create a stub for the Calculator class. $calculator = $this->getMockBuilder('Calculator') ->getMock(); // Configure the stub. $calculator->expects($this->any()) ->method('add') ->will($this->returnValue(6)); $this->assertEquals(6, $calculator->add(100,100)); }
Заключение Вы должны были накопить достаточно знаний о PhpUnit, чтобы начать реализовывать unit-тесты в своём коде. Если вам требуется больше информации, можете обратиться к официальной документации и конкретно к разделу о "двойниках" . Надеюсь, это простое руководство помогло вам в понимании тестирования приложений. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|