Articles of unit testing

Неустранимая ошибка «Файл / Итератор / Autoload.php» не найден при запуске phpunit

Я получаю эту ошибку, пока я пытался запустить testclass в phpunit. C:\xampp\htdocs\unittest>phpunit UnitTest usertest.php PHP Warning: require_once(File/Iterator/Autoload.php): failed to open stream No such file or directory in C:\xampp\php\pear\PHPUnit\Autoload.php on line 45 PHP Stack trace: PHP 1. {main}() C:\xampp\php\phpunit:0 PHP 2. require() C:\xampp\php\phpunit:41 Warning: require_once(File/Iterator/Autoload.php): failed to open stream: No such file or directory in C:\xampp\php\pear\PHPUnit\Autoload.php […]

Что такое единичные тесты и почему меня это беспокоит?

Хорошо, я разрабатываю веб-приложения на PHP и JavaScript и много раз здесь, в Stack Overflow. Я видел, как проходит тестовое тестирование слова, но нигде на веб-сайте я не смог найти удовлетворительный ответ на то, , Итак, что такое модульные тесты, и должен ли я, как программист PHP и JavaScript, заботиться, или они предназначены только для […]

Как я могу написать тесты для загрузки файлов в PHP?

Я использую simpleTest для написания своих тестов PHP. Я пишу плагин для загрузки файлов и задавался вопросом, как я могу его тестировать. Я хотел бы проверить, что файл правильно загружен, в правильной папке, эта ошибка корректно возвращается при необходимости и т. Д. Как эмулировать загрузку файла (через переменную $ _FILES)? Есть ли какие-то проблемы, о […]

Зависимость Ад – как передать зависимости глубоко глубоко вложенным объектам?

Вот общий мнимый пример, составленный для этого сообщения. Рассмотрим 6 классов TableFactory, TableData, TableCRUD, TableSchema, DBConnect, Logger. TableFactory – это внешний класс, допустим, он содержит объект TableData для таблицы DB. В этом TableFactory нет вызовов TableSchema или DBConnect или logger . Я стремлюсь к примеру внутренних объектов, которые не нужны во внешней сфере. TableData – […]

Простые тесты ZF2 для контроллера с использованием ZfcUser

У меня возникли проблемы с попыткой выполнить единичное тестирование действия, которое использует ZfcUser для аутентификации. Мне нужно каким-то образом высмеять плагин ZfcUser Controller, но я не уверен, как это сделать. Мне удалось успешно произвести некоторые модульные тесты для таблиц и моделей, но контроллер требует много инъецируемых объектов и вызывает проблемы. Кто-нибудь знает, как настроить Mocks […]

Рекомендации по проверке защищенных методов с помощью PHPUnit

Я нашел дискуссию о тестировании частного метода информативным. Я решил, что в некоторых классах я хочу иметь защищенные методы, но проверять их. Некоторые из этих методов являются статическими и короткими. Поскольку большинство общедоступных методов используют их, я, вероятно, смогу безопасно удалить тесты позже. Но для того, чтобы начать с подхода TDD и избегать отладки, я […]

проверить возвращаемое значение метода, который вызывает ошибку с помощью PHPUnit

Этот вопрос специфичен для использования PHPUnit. PHPUnit автоматически преобразует ошибки php в исключения. Есть ли способ проверить возвращаемое значение метода, который запускает ошибку php (либо встроенные ошибки, либо пользовательские ошибки с помощью trigger_error )? Пример кода для проверки: function load_file ($file) { if (! file_exists($file)) { trigger_error("file {$file} does not exist", E_USER_WARNING); return false; } […]

PHPUnit Mock Objects и статические методы

Я ищу лучший способ проверить следующий статический метод (в частности, с помощью модели Doctrine): class Model_User extends Doctrine_Record { public static function create($userData) { $newUser = new self(); $newUser->fromArray($userData); $newUser->save(); } } В идеале я бы использовал макет объекта, чтобы гарантировать, что «fromArray» (с предоставленными данными пользователя) и «сохранить» были вызваны, но это невозможно, поскольку […]

Игнорирование предупреждений PHP в PHPUnit

Я использую PHPUnit для модульного тестирования моих функций, когда когда-либо появляется какое-либо предупреждение в коде, тестовый скрипт не будет выполняться для этих функций, может ли кто-нибудь сказать мне, как игнорировать предупреждения и приступать к тестированию

модульное тестирование и статические методы

Чтение и сбор данных на модульном тестировании, пытаясь понять следующее сообщение , объясняет трудности статических вызовов функций. Я не совсем понимаю эту проблему. Я всегда считал, что статические функции были хорошим способом округления функций полезности в классе. Например, я часто использую вызовы статических функций для инициализации, то есть: Init::loadConfig('settings.php'); Init::setErrorHandler(APP_MODE); Init::loggingMode(APP_MODE); // start loading app […]