Nunit: Пустой результат от генератора `TestCaseSource` должен не пройти тест

Созданный на 3 июн. 2020  ·  3Комментарии  ·  Источник: nunit/nunit

При использовании [TestCaseSource(nameof(GeneratorMethod))] имеет смысл провалить тест (или пометить его как пропущенный), если генератор не выдает никаких входных данных. По крайней мере, не показывайте тест как пройденный :/

Самый полезный комментарий

Некоторые моменты, которые следует учитывать...

  1. Источников может быть несколько, поэтому нам нужно четко понимать, относится ли обсуждение к __каждому__ источнику или к совокупному результату всех источников.

  2. Источники генерируют тесты, а не только данные. Если тесты не сгенерированы, то нет ничего, что могло бы провалиться или пропустить. В далеком прошлом (V2) мы сгенерировали фальшивый непройденный тест, который оказался одновременно запутанным в коде и сбивающим с толку пользователей.

  3. Метод тестирования без случаев немного похож на метод без кода. Тоже вроде фикстура без тестов. Считаем проходящих.

  4. Если вы назовете свой тест теорией, вы получите отказ, если не будет проходного случая.

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

Все 3 Комментарий

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

😢

Я только что написал тест с (в настоящее время) одним элементом в исходном коде, и, будучи новым тестом в цикле TDD, я ожидал, что он провалится, но обнаружил, что он пройден... поэтому мне пришлось отследить мой неисправный генератор.

Возможно, неудача — это немного драконовски (мое предпочтение, но это может раздражать репортера предыдущего выпуска). Как насчет того, чтобы отметить тест как пропущенный?

Некоторые моменты, которые следует учитывать...

  1. Источников может быть несколько, поэтому нам нужно четко понимать, относится ли обсуждение к __каждому__ источнику или к совокупному результату всех источников.

  2. Источники генерируют тесты, а не только данные. Если тесты не сгенерированы, то нет ничего, что могло бы провалиться или пропустить. В далеком прошлом (V2) мы сгенерировали фальшивый непройденный тест, который оказался одновременно запутанным в коде и сбивающим с толку пользователей.

  3. Метод тестирования без случаев немного похож на метод без кода. Тоже вроде фикстура без тестов. Считаем проходящих.

  4. Если вы назовете свой тест теорией, вы получите отказ, если не будет проходного случая.

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

Была ли эта страница полезной?
0 / 5 - 0 рейтинги