Я занимался небольшим модульным тестированием в разные моменты моей карьеры. Всякий раз, когда я начинаю погружаться в нее снова, мне всегда сложно, как доказать, что мои тесты правильные. Как я могу сказать, что в моем unit test нет ошибки? Обычно я запускаю приложение, доказывая его работоспособность, а затем используя unit test как своего рода тест регрессии. Каков рекомендуемый подход и/или какой подход вы применяете к этой проблеме?
Edit: Я также понимаю, что вы могли бы написать небольшие, гранулированные модульные тесты, которые было бы легко понять. Однако, если вы предполагаете, что маленький, гранулированный код является безупречным и пуленепробиваемым, вы можете просто написать небольшие, гранулированные программы и не нуждаться в модульном тестировании.
Edit2: для аргументов "модульное тестирование заключается в том, чтобы ваши изменения ничего не нарушали" и "это произойдет, только если тест имеет тот же самый недостаток, что и код", а что, если тестовая надстройка? Это может пройти как хороший, так и плохой код с плохим тестом. Мой главный вопрос заключается в том, что хорошее является модульным тестированием, поскольку, если ваши тесты могут быть испорчены, вы не можете действительно повысить свою уверенность в своем коде, не можете доказать, что ваш рефакторинг работает, и не может действительно доказать, что вы выполнили спецификацию?