К сожалению, набор функций, которые не должна выполнять функция, бесконечен.Не установка других, кроме желаемых атрибутов - это только одна возможность.И, когда дело доходит до спецификаций, они в основном только явные в отношении того, что должна делать функция.Всегда есть неявное «и ничего больше», и лишь в редких случаях некоторые выбранные поведения явно исключаются.
С другой стороны, когда вы применяете модульное тестирование, чтобы проверить, что написанный вами код ведет себя так, как вы намеревалисьЕсли он будет вести себя правильно, то проблема станет управляемой: существует множество «вероятных» ошибок, и ваши тесты должны быть разработаны для их выявления.Например, вы знаете, выполняет ли ваш код ввод-вывод или нет, и если нет, то при написании юнит-тестов нет смысла проверять, не выполняет ли ввод-вывод.С другой стороны, если у вас есть веские основания полагать, что, скорее всего, ошибка заключается в том, что код выполняет больше, чем предполагалось, для определенной операции, то стоит проверить, что это не так.
То же самое относитсяВ основном это код, написанный другим человеком, например, если вы берете на себя поддержку какого-то кода.В любом случае модульное тестирование - это метод белого ящика, и предполагается, что у вас есть доступ к коду, обычно даже возможность его изменить (например, для улучшения тестируемости).