Здравствуйте, vsb, Вы писали:
vsb>Моё имхо — у числа тестов есть некая золотая середина, до которой они приносят большую пользу, а выше которой — польза сильно падает, а вред (в виде возросшего объёма кода для поддержки) начинает расти. И эта золотая середина не позволяет писать весь код с ТДД подходом (т.к. при его правильном применении тестов нужно ну очень много).
У меня есть теория, которая описывает, где проходит эта золотая середина.
Код отчётливо делится на библиотечный и прикладной. Я не понимаю, почему авторы книжек и прочие философы эту разницу не берут в расчёт, ведь это очень разные животные. Например, высокая связность — это хорошо или плохо? Ну, в прикладном коде, наверно, это не очень хорошо. А в библиотечном? Зачем, например, нужна библиотека для работы с геометрией, если все её функции не принимают на вход свой же Point?
Что касается тестов, они оптимальны, когда продуктовые. Есть продукт, мы его тестируем как таковой. Очевидно, для библиотечного кода продуктовыми тестами будут юнит-тесты, потому что продукт там — сами функции/объекты/интерфейсы. В каком порядке их писать, дело десятое.
Для прикладного же кода, скажем, для формы в приложении, продуктовыми тестами будет что-то другое. Какой-нибудь макрорекордер, или ещё что-нибудь в этом роде.