PHPUnit 8, как установить динамически заданное описание testdox - PullRequest
0 голосов
/ 21 января 2020

Я использую аннотацию @testdox в PHPUnit 8, чтобы задать описание для моих тестов.

Это отлично работает, но я хотел бы иметь возможность задавать описание динамически. Такой метод был бы хорош:

$this->setTestDoxDescription("My super test routine for date: ".$mydate->format('Y-m-d');

У меня есть тесты, которые проверяют результаты различных функций, связанных с датой. Многие из тестов относятся к сегодняшней дате, поэтому входные значения даты не являются фиксированными и генерируются динамически. Я хотел бы иметь возможность печатать значения даты в описании.

Я только что обнаружил метод setName() в TestCase, и он, кажется, делает в основном то, что я хочу:

$this->setName("My super test routine for date: ".$mydate->format('Y-m-d');

Однако, есть какой-то синтаксический анализ, и он разбивает мои даты на - символы и добавляет дополнительные пробелы. Например, 2020-04-04 изменяется на 2020- 04- 04. Но если я использую @testdox 2020-04-04, это не разделяет вещи. Это проблема только когда я использую setName(). Ничего страшного, но немного раздражает.

Я уже решил свою проблему, но, возможно, кто-то может порекомендовать лучший способ.

1 Ответ

1 голос
/ 22 января 2020

Вы можете поместить имена переменных в строку @testdox, переменные, которые возвращаются из @dataprovider (задаются как параметры метода).

Пример из собственных тестов phpunit ...

/**
 * @testdox Valid regex $pattern on $subject returns $return
 * @dataProvider validRegexpProvider
 *
 * ....
 */
public function testValidRegex($pattern, $subject, $return): void

Я только что добавил его в свои собственные тесты, и один пример вывода dataprovider / testdox:

@ testdox displayNumber форматирует входные данные $ как 'Ожидаемый $ длинный' и 'ожидаемый $ $ "

publi c функция testNumber ($ input, $pectedLong, $ ОжидаемыйShort): void {}

✔ displayNumber форматирует 1781234 как «1,781,234» и «1,8M»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...