Вопрос

Когда кто -то начинает искать тесты на модуль PHP, на один обычно наткнулся на:

  1. Фпунит.
  2. Простой.
  3. Множество блогов, объясняющих, как использовать фпунит и простые.
  4. Вопросы Stackoverflow о фпуните и простой ...

... и я думаю, что вы поняли идею.

Мне было интересно: как можно пройти модульное тестирование с простой PHP? Это даже мудрый начинание?

Я полагаю, мне придется построить свою собственную маленькую структуру. Мне интересно, потому что я хочу лучше понять, что происходит в моих модульных тестах. Мне также интересно, потому что я думаю, что легкое, индивидуальное решение будет быстрее запустить мои тесты.

Бонусный вопрос: кто проиграл? Есть ли третья структура, которую стоит изучить (для целей акций)?

Это было полезно?

Решение

Единое тестирование - это в основном набор утверждений.

Рассмотрим следующий пример тестирования фпунита:

class MyTest extends PHPUnit_Framework_TestCase {
   public function testFoo() {
       $obj = new My;
       $this->assertEquals('bar', $obj->foo());
   }
}

Вы можете иметь аналогичный тестовый пример без использования Phpunit:

class MyTest {
   public function testFoo() {
       $obj = new My;
       assert("$obj->foo() == 'bar'");
   }
}

Однако, делая это без структуры, вам придется вручную создать экземпляр тестового примера (MyTest) и вызывать каждый метод испытания вручную (MyTest :: testfoo и т. Д.).

Структура (например: Phpunit) - это не что иное, как набор «помощников», чтобы сделать его проще и быстрее: автоматически генерируя скелет; Со встроенными макетными объектами, сценариями командных строк и т. Д.

Вы по -прежнему можете тест на единицу без структуры, но, в конце концов, вы, вероятно, сэкономите больше времени, используя его, потому что, в конце концов, это вообще для того, для чего нужны рамки.

Другие советы

Мое мнение было бы то, что так не так со стандартным колесом (Phpunit по всей вероятности), что требует разработки замены? В конце концов, не является проверенным решением, разумным выбором в этом случае?

Кроме того, вывод стандартных инструментов будет легче использовать, если вы когда -нибудь захотите использовать преимущества непрерывного сервера интеграции дальше в будущем. (Конечно, вы можете сделать свой собственный инструмент в идентичном формате, но это приводит к аргументу «Зачем повторно изобретать колесо».)

Я использовал Simpletest год назад, и это очень легкий. Это действительно не так много, кроме как предоставить вам способ автоматической загрузки тестовых пакетов и утверждать.

По сути, это включало все классы, начиная с «теста», и это позвонит на все методы, начиная с «теста» внутри этого класса. Внутри методов вы можете утверждать, что результаты - это то, что вы ожидали.

Если бы вы построили свою собственную структуру, я настоятельно рекомендую изучить самые простые. Это очень легкое по сравнению с блоком PHP (если это вас пугает).

Вы можете написать тесты на любом языке без структуры, но код, который вы пишете, который вы делитесь в своих тестах, в конечном итоге станет своего рода миниатюрной работой.

Хорошая структура модульного тестирования будет иметь общие вещи, которые вам нужно для облегчения тестирования, таких как утверждения, макет, заглушки, обработка исключений и покрытие кода.

Бонусный вопрос: кто проиграл? Есть ли третья структура, которую стоит изучить (для целей акций)?

Например, в пространстве тестирования блока PHP есть проигравшие. Увеличить PHP, которая представляет собой платформу для тестирования единиц со встроенными макетами и заглушками. У него есть некоторые преимущества перед крупными игроками - у него хорошая документация и очень быстро начинается.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top