Я ищу более простой тестовый фреймворк.Я взглянул на несколько скриптов PHPUnit и SimpleTest и нашел ужасный синтаксический сахар.SnapTest звучал красиво, но было так же громоздко.Apache More :: Тест был слишком процедурным, даже на мой вкус.И Symfony Lime-Test был уникальным в этом отношении.Инструменты BDD, такие как http://everzet.com/Behat/#basics, очень хороши, но даже на два уровня абстракции выше, чем хотелось бы.
Более того, я до сих пор использую одноразовые тестовые сценарии.И мне интересно, если вместо того, чтобы выбрасывать их, есть тестовый фреймворк / инструмент, который упрощает их использование для автоматизированных тестов.В частности, я хотел бы использовать что-то, что:
- оценивает вывод (печать / эхо) или даже возвращает значения / объекты
- сериализует и сохраняет его как данные зонда / сравнения
- позволяет классифицировать этот результат сравнения как пройденный тест или сбой
- также собирает заголовки, предупреждения или сообщения об ошибках (которые также могут быть ожидаемыми)
- в дополнение к нескольким $Состояния test-> assert () или test :: fail ()
В принципе, я слишком ленив, чтобы работать с тестовыми средами, предварительно определяя вручную или логически оценивая и классифицируя ожидаемый результат.Также я не нахожу интересным бесполезное объединение тестовых методов в классы, достаточно простых сценариев включения или функций.Кроме того, не должно быть затруднений в автозапуске через тестовые сценарии с предварительно инициализированной базой и тестовой средой.
Старые сценарии .phpt с их выводом --expect-- близки, но все еще требуют слишком многоручная настройка.Также я бы предпочел веб-интерфейс для запуска тестов.Есть ли современная версия таких тестовых сценариев?(плюс некоторая оценка заголовка / ошибки / результата и, в конечном итоге, методы юнит-теста :: assert)
Правка, я приведу пример.Это ваш типичный тест PHPUnit:
class Test_Something extends PHPUnit_Test_Case_Or_Whatever {
function tearUp() {
app::__construct(...);
}
function testMyFunctionForProperResults() {
$this->assertFalse(my_func(false));
$this->assertMatch(my_func("xyzABC"), "/Z.+c/");
$this->assertTrue(my_func(123) == 321);
}
}
Вместо этого я хотел бы использовать простой PHP с менее смешанным API-интерфейсом для тестирования:
function test_my_function_for_proper_results() {
assert::false(my_func(false));
print my_func("xyz_ABC");
return my_func(123);
}
Ну, на самом деле это три теста, заключенные в один.Но только для того, чтобы подчеркнуть: первая версия требует ручного тестирования.То, что я хочу, это отправка / возврат тестовых данных в тестовую среду.Задача фреймворка - сравнивать результаты, а не просто логические выражения с ложкой.Или представьте, что я получаю раздутый результат массива или цепочку объектов, которую не хочу указывать вручную в тестовых сценариях.