Программирование


Не работает метод returnValueMap в PHPUnit: возвращает NULL

Бывает так, что метод заменённый через returnValueMap возвращает NULL .Иногда такое происходит, потому что в методе returnValueMap заданы не все аргументы, которые есть в сигнатуре заменяемого метода. Обычно можно упустить необезательные аргументы.

читать далее...

PHPUnit: No tests executed

Бывает, что при запуске тестов выводится сообщение: “No tests executed!” хотя при этом тесты есть в наличие.

читать далее...

Тестировании вывода на PHPUnit

Иногда нужно тестировать, что код создаёт определённый вывод. Для этого в PHPUnit есть метод expectOutputString().

читать далее...

Тестирование PHP ошибок на PHPUnit

PHPUnit по умолчанию преобразует PHP ошибки (errors, warnings и notices) в исключения, чтобы с ними можно было работать. Это даёт возможность тестировать наличие ошибок, используя аннотацию @expectedException (см. Тестирование исключений в PHPUnit). Если возникли проблемы с такими проверками, то проверьте настройку PHP error_reporting.

читать далее...

Тестовые окружения (Fixtures) в PHPUnit

При тестировании часто необходимо привести состояние окружающего мира в определённое состояние, то есть создать для теста тестовое окружение (Fixture). В PHPUnit для этого есть методы setUp() и tearDown(). Перед запуском тестового метода запускается метод setUp(). В этом методе вы можете настраивать тестовое окружение: создавать объекты, с которыми тестируете и т.п. 

читать далее...

PHPUnit mock-объекты

При тестировании объекта необходимо изолировать его, отключить от внешней системы (См. Модульное тестирование). Для этого нужно подменить (дублировать) реальные объекты, с которыми взаимодействует тестируемый объект, на их тестовые дубликаты (Test Doubles). Эти дубликаты не должны вести себя также как реальные объекты, но они должны иметь такой же API.

читать далее...

Тестирование исключений в PHPUnit

Для проверки бросил ли тестируемый код необходимое исключение (exception) в PHPUnit есть аннотация @expectedException.

читать далее...

Поставщик данных (Data Provider) в PHPUnit

Часто нужно выполнять один и тот же тест, но с разными данными. Для этих целей используется поставщик данных, задаваемый аннотацией @dataProvider. Её значение должно быть название публичного метода, возвращающего массив вариантов.

читать далее...

Зависимости тестов PHPUnit

Иногда бывает, что тестируемый метод является зависимым от выполнения других методов. Для тестирования таких методов нужно сначала выполнить и возможно протестировать методы, от которых зависит тестируемый метод. Для этих целей в PHPUnit есть аннотация @depends, значение которой метод-поставщик. 

читать далее...

Пример тестирования на PHPUnit

PHPUnit - это фреймворк для модульного тестирования (юнит-тестирования) на языке программирования PHP.

Структура файлов тестов обычно повторяет структуру файлов проекта, но к названиям файлов добавляется постфикс Test. Приведём пример, где файлы проекта лежат в директории src, а тесты в директории tests.

читать далее...

Модульное тестирование

Модульное тестирование, или юнит-тестирование (англ. Unit testing) - способ тестирование программного обеспечения, при котором по-отдельности тестируются части программы (модули, классы, методы, функции и т.д.). При этом желательно, чтобы эти части были наименьшими. 

читать далее...