модульный тест с помощью проверки работоспособности
Я часто видел тесты, в которых постоянные входы вводятся в программу, каждый проверяет выходные данные, сгенерированные на основе ожидаемых (ожидаемых) выходов, обычно через diff. Если разница принята, считается, что код прошел тест.
Вопросов:
1) Это приемлемый юнит тест?
2) Обычно входные данные модульного теста считываются из файловой системы и представляют собой большие XML-файлы (возможно, они представляют очень большую систему). Должны ли модульные тесты касаться файловой системы? Или же модульный тест на лету создаст небольшой ввод и передаст его в код для тестирования?
3) Как можно реорганизовать существующий код для проверки на модульность?