Каковы последствия отсутствия имен тестовых методов PHPUnit в случае верблюда? - PullRequest
4 голосов
/ 11 января 2011

Я пишу юнит-тесты с PHPUnit .

У меня сейчас около 100 методов написано.

Поскольку они предназначены для фреймворка Kohana , я использовал его соглашение об именах и для методов тестирования, например ::

function test_instance()
{
    ...
}

function test_config()
{
    ...
}

Все мои тесты отлично выполняются в Eclipse и из командной строки.

Однако мне теперь нужно использовать функцию setup и понял, что она работает только при названии:

function setUp()
{
    ...
}

а не:

function set_up()
{
    ...
}

Теперь мне интересно, будут ли у меня какие-либо недостатки в будущем, если я не переименую все мои методы PHPUnit, чтобы они были верблюжьими, например другие инструменты, использующие PHPUnit, исключают имена методов в нотации верблюдов?

Ответы [ 2 ]

12 голосов
/ 11 января 2011

Имена методов в PHP не чувствительны к регистру, поэтому не имеет значения, используете ли вы setup или setUp и tearDown или teardown.Однако вы не можете использовать set_up или tear_down, потому что это другое имя.PHPUnit вызывает setUp и tearDown между каждым тестом, чтобы гарантировать среду.

По соглашению PHPUnit считает любой метод, начинающийся с test, тестом.Вы можете опустить префикс, используя аннотацию @test в методе DocBlock.PHPUnit преобразует имена методов CamelCased в разнесенные описания при печати любых отчетов, поэтому testMethodDoesThis будет отображаться как «Метод делает это».

CamelCase также будет влиять на тесты, аннотированные @testDox аннотацией.

1 голос
/ 11 января 2011

setUp и teardown являются точными именами, которые должны быть сопоставлены, чтобы быть распознанными.С другой стороны, тесты должны начинаться с test.(Все они чувствительны к регистру.)

Кроме этого, нет никаких требований к капитализации / расположению остальной части именования.(Ну, классы не могут начинаться с Test, но это все.)

...