модульное тестирование — Как использовать PHPUnit Skeleton Generator на бесклассовых php-файлах?

Я слышал о способности PHPUnit автоматически генерировать базовые тестовые файлы из этой статьи: http://www.sitepoint.com/advanced-phpunit-testing-annotations-and-mocking/

(Обратите внимание, что PHPUnit-skelgen теперь является отдельной утилитой от остальной части проекта PHPUnit, ее источник можно найти здесь: https://github.com/sebastianbergmann/phpunit-skeleton-generator)

Если я использую phpunit-skelgen в следующем фрагменте кода:

<?php

class TestClass {

/**
* @assert (1, 2) == 3
*/
function add($a, $b) {
return $a + $b;
}
}
?>

Запустив phpunit-skelgen generate-test TestClassМеня приветствует следующий метод испытаний (наряду с обычным шаблоном phpunit):

/**
* Generated from @assert (1, 2) == 3.
*
* @covers TestClass::add
*/
public function testAdd()
{
$this->assertEquals(
3,
$this->object->add(1, 2)
);
}

Мой вопрос: возможно ли phpunit-skelgen создавать тесты для php-файла без классов в нем? Например, у меня есть довольно большой файл с несколькими глобальными функциями действий, для которого я бы хотел, чтобы phpunit-skelgen создавал тесты, но я не вижу способа сделать это без упаковки моего существующего кода в класс.


Редактировать: Это вывод, если я пытаюсь запустить phpunit-skelgen для файла php с функциями, но без класса:

theguy@workpc ~/Projects/PHPUnitSamples $ phpunit-skelgen generate-test noClass
phpunit-skelgen 2.0.1 by Sebastian Bergmann.[RuntimeException]
Could not find class "noClass" in "/home/perry/Projects/PHPUnitSamples/noClass.php".generate-test [--bootstrap="..."] class [class-source] [test-class] [test-source]

У кого-нибудь есть предложения?

Также я заметил, что недавняя документация по phpunit-skelgen крайне скудна. Кто-нибудь знает какие-нибудь хорошие учебники или руководства или что-то написанное с тех пор, как phpunit-skelgen был перенесен в отдельный проект?

2

Решение

Документация может быть недостаточной, но первая строка совершенно ясно о цели:

phpunit-skelgen — это инструмент, который может генерировать скелетные тестовые классы из производственного кода классы и наоборот.

(выделено)

Так что ответ таков: это невозможно.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]