Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

PhpInlineTest - script to run inline tests for PHP functions and class methods

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 README.md
Octocat-spinner-32 example.php
Octocat-spinner-32 phpinlinetest.php
README.md

PhpInlineTest English version

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 Русская версия

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

Something went wrong with that request. Please try again.