PhpInlineTest is script to run inline tests for PHP functions and class methods
WTF is inline tests?
Inline tests are asserts embedded right into PHPDOC-comments.
Benefits
- Easy and fast to add tests for your functions.
- Tests can complement/replace documentation for method.
- Can be written for private/protected class methods.
- You will never lose them: they are always inside scripts.
Downsides
- Good only for simple test cases.
- Can be written only for isolated functions: input - arguments, output - return value.
How to use? It is easy:
Step 1. Write assert line in PHPDOC-comment for class method or function:
<?php class A { /** * Inline test example * for private class method * @assert (2, 2) == 4 */ private function _add($a, $b) { return $a + $b; } }
Step 2. Download latest version of phpinlinetest.
Step 3. Run phpinlinetest to check your asserts:
$ php phpinlinetest.php
.\example.php
Test "_add(2, 2) == 4": OK
Files: 1, tests: 1, succeed: 1, failed: 0
Step 4. Enjoy!
PhpInlineTest - это скрипт для запуска inline-тестов для PHP функций и методов класса
Что это еще такое за inline-тесты?
Inline-тесты - это тесты, встроенные непосредственно в PHPDOC-комментарии.
Плюсы
- Легко и быстро можно добавить тесты для ваших функций.
- Тесты могут замещать/дополнять документацию для метода.
- Могут быть написаны для закрытых методов класса.
- Вы никогда не потеряете их: тесты всегда внутри скрипта.
Минусы
- Подходят только для простых случаев.
- Могут быть написаны только для изолированных функций: вход - аргументы, выход - возвращаемое значение.
Как их использовать? Это просто:
Шаг 1. Напишите строку теста функции в PHPDOC-комментарии:
<?php class A { /** * Пример inline-теста * для закрытого метода класса * @assert (2, 2) == 4 */ private function _add($a, $b) { return $a + $b; } }
Шаг 2. Скачайте последнюю версию phpinlinetest.
Шаг 3. Запустите phpinlinetest, чтобы проверить ваши тесты:
$ php phpinlinetest.php
.\example.php
Test "_add(2, 2) == 4": OK
Files: 1, tests: 1, succeed: 1, failed: 0
Шаг 4. Наслаждайтесь!
Keywords: phpinlinetest, php, inline, test, unit, doctest, testing, documentation, phpdoc, comments, methods, private