Как использовать TDD для методов, которые, как ожидается, ничего не сделают для определенных входных данных? - PullRequest
0 голосов
/ 19 мая 2018

Я уверен, что это глупый вопрос, но я просто не знаю - предположим, у меня есть метод, который, как ожидается, ничего не сделает для определенных входных данных.Мол, значение <10, печатать символы, иначе ничего не делать.По сути, модульный тест прошел бы для реального метода или для одного только с пустым телом.Как написать неудачный тест для такого экземпляра? </p>

1 Ответ

0 голосов
/ 19 мая 2018

Ваши проверки юнит-тестов должны основываться на наблюдаемых единичных эффектах - возвращаемом значении или (к сожалению) побочных эффектах.Иногда вы хотите проверить поведение вместо результата с помощью mocks, но это делает тесты хрупкими.

Если у вас есть возвращаемое значение, все просто, вы просто проверяете, что значение удовлетворяет некоторым известным постусловиям.

В случае возникновения побочных эффектов вы вынуждены настроить правильную среду тестирования (например, какое-то глобальное состояние), а затем проверить, как она была изменена.Для вашего конкретного примера вы можете перенаправить вывод и позже проверить, что что-то было записано в него со значениями меньше 10, и ничего не было записано иначе.

Так что, как правило, вы все еще хотите проверить, что метод ничего не делал, потому что это отдельныйпоток выполнения.

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