В эти дни я кодирую некоторые структуры данных в Java. Многие из них (если не все) предлагают очень простой интерфейс (добавить, содержит, удалить), но под капотом существуют нетривиальные алгоритмы.tdd с нетривиальными алгоритмами
Как я могу использовать технику tdd в такой ситуации?
Я думаю, что проблема в том, что tdd (и в целом модульное тестирование) касается тестирования интерфейсов, а не реализаций. Я прав? Как я могу справиться с этим?
Если вы знаете какую-либо технику для обработки этих случаев, пожалуйста, сообщите мне об этом.
Благодарим за помощь.
Если я тестирую только интерфейс в этом случае, у меня нет никакой помощи в создании моего класса и написании моих методов. На практике я свожу на нет преимущества tdd. Вам не кажется? – TheSENDER
Ничто не мешает вам писать тесты для внутренних методов реализации, таких как 'merge()' или 'resizeArray()', но просто имейте в виду, что когда вы это делаете, вы делаете свои тесты более хрупкими. –
Кроме того, если вы убедитесь, что ваши тесты находятся в одном пакете, вы можете сделать это, сделав вещи защищенными - тем не менее, скрытыми от «реального» мира. –