В модульном тестировании ваша цель - протестировать поведение, а не «код».Подумайте о методе проверки черного ящика, и вы хотите убедиться, что он работает правильно.Вы не знаете, как это работает, но вы ожидаете определенных результатов для определенных входных данных.Таким образом, вы захотите создать тесты для разных случаев того, как вы ожидаете, что код будет работать, как если бы вы ничего не знали о том, как внутренняя часть метода на самом деле выполняет свою работу.Итак, вы бы написали тесты, такие как «applysDiscountToShoppingCart» и «addDeliveryFeeToShoppingCart».
Теперь, после всего сказанного, также полезно создать «крайние случаи», в которых вы тестируете вещи, которые могут сломатьсянапример, нулевые значения, нули, негативы, слишком большие / малые данные и т. д.), чтобы увидеть, не сработает ли это ожидаемым образом.Обычно для их написания необходимо знать, как на самом деле работает метод.Если вы можете разработать тесты, которые охватят весь ваш код, это здорово!100% тестирование - это определенная вещь, к которой нужно стремиться, но она не всегда практична (или полезна) в зависимости от ситуации.