"тогда я не проверяю все, что может пойти не так."
Правильно.
Работа модульных тестов - , а не , чтобы проверить все , которое может пойти не так.
Работа модульных тестов заключается в проверке того, что у вас есть, правильное , с учетом конкретных входных данных и ожидаемых результатов. Важной частью здесь являются конкретные видимые, внешние требования удовлетворяются конкретными тестовыми примерами. Не всякое, что может пойти не так, как-то предотвращено.
Ничто не может проверить все, что может пойти не так. Вы можете написать доказательство, но вам будет сложно написать тесты для всего .
Мудро выбирайте свои тесты.
Кроме того, работа модульных тестов заключается в проверке того, что каждая небольшая часть общего приложения делает правильные вещи - в изоляции.
Например, ваш "код, аппроксимирующий кривую с кривой с более низким разрешением", вероятно, содержит несколько небольших частей, которые можно протестировать как отдельные блоки. В изоляции. Интегрированное целое также может быть проверено, чтобы убедиться, что оно работает.
Например, ваша "интенсивная работа на графике с более низким разрешением", возможно, состоит из нескольких небольших частей, которые можно протестировать как отдельные модули. В изоляции.
Этот пункт модульного тестирования заключается в создании небольших, правильных модулей, которые впоследствии собираются.