我目前正在以 TDD 方式编写 JDBC 驱动程序的实现(是的,你没看错),虽然此时我只完成了类存根并且只有一些次要功能,但我突然想到,因为Statement
它是一个超类对于PreparedStatement
which 是 的超类CallableStatement
,当我真正开始为这些类的实现编写测试时,我应该怎么做,我应该做其中的哪一个:
- 创建一个测试套件
Statement
,然后扩展该套件以进行其他测试PreparedStatement
,然后对CallableStatement
. - 单独测试每个实现,忽略从超类继承的方法。
- 为每个实现类单独严格测试每个方法;毕竟,某些继承的方法可能会因实现而有所不同。这一点的轻微变化是我会测试实现使用的所有那些继承的方法。
第二个感觉最自然,但由于我放在第三个的原因,我不确定这样做是否明智。所以,你觉得我应该怎么做?