В настоящее время я пишу реализацию драйвера JDBC ( да, вы правильно прочитали ) в стиле TDD, и хотя на этом этапе я только закончил заглушки классов и только некоторые незначительные функциональные возможности, он Мне пришло в голову, что, поскольку Statement
является суперклассом для PreparedStatement
, который является суперклассом для CallableStatement
, что мне делать, когда я действительно начинаю писать тесты для своих реализаций этих классов, какой из них мне следует делать :
- Создайте набор тестов для
Statement
, затем расширьте этот набор для дополнительных тестов для PreparedStatement
, а затем сделайте то же самое для CallableStatement
.
- Проверять каждую реализацию в отдельности, игнорируя методы, унаследованные от суперкласса (ов).
- Тщательно протестировать каждый метод отдельно для каждого класса реализации; Возможно, что некоторые унаследованные методы работают по-разному в зависимости от реализации. Небольшая вариация этого состояла бы в том, что я бы протестировал все те унаследованные методы, которые использует реализация.
Номер два кажется самым естественным, но из-за причины, которую я назвал третьей, я не уверен, что было бы разумно сделать это. Итак, что вы думаете, я должен сделать?