Как разработка через тестирование и принцип открытости / закрытости работают вместе?

Я читал о модульном тестировании, TDD и принципах SOLID, и мне нужны некоторые пояснения. Я понимаю, что если придерживаться принципа открытого / закрытого, модульное тестирование может стать в значительной степени ненужным из-за того, что код закрыт для модификации - поэтому нет необходимости повторно тестировать, если код должным образом изолирован и развязан. Долгосрочная выгода от дополнительных начальных затрат на модульное тестирование теряется, если после прохождения кода соответствующих модульных тестов он не изменится. Код всегда будет проходить, потому что он никогда не изменится, верно? Унаследованные классы необходимо будет протестировать, но как только они пройдут соответствующие тесты, они также будут закрыты для модификации, и их не нужно будет повторно тестировать. Статья в Википедии об OCP усиливает эту мысль в первом абзаце (я понимаю, что это не делает это законом).
Лучшее объяснение, которое я нашел для OCP и TDD, живущих в гармонии , находится здесь , хотя кажется, что Арнон говорит, что OCP дополняет TDD тем, что разработчику не рекомендуется изменять исходный код, потому что существующие методы тестирования могут стать сложными при изменении для тестирования новых функций.
Это все? Имейте в виду, что я не ищу аргументов, я новичок в этом и ищу разъяснений от тех, у кого больше опыта в этой теме, чем у меня.

5
задан joelmdev 26 October 2011 в 14:20
поделиться