可测试设计是否需要连续验证?

时间:2013-06-01 09:41:52

标签: unit-testing tdd

我刚开始学习测试驱动开发和单元测试,但似乎这两个概念都非常依赖于Interface构造的使用。鉴于Interface是一个抽象的构造,没有实现,在我看来,接口公开的数据必须由消耗接口的任何东西重新验证。所以我想知道......可测试设计实际上是否需要持续验证,还是我错过了什么?

1 个答案:

答案 0 :(得分:1)

接口通常被认为是合同,它(通过其文档)指定了其实现者应该如何表现的规则。即使编译器无法查看或验证实现者是否遵循这些规则,程序仍假定所有实现者都遵循这些规则。例如,给定

public interface IPersonInfo {
    // Returns a valid social security number.
    String getSocialSecurityNumber();
}

界面的消费者通常会认为实施者只会返回有效的社会安全号码,因此消费者不需要重新验证它。当然,这假定您信任实施代码;如果这是例如您可能希望验证返回值是外部Web服务或第三方插件的接口。但是,一般的方法是在单个程序中,假设实现者将遵循非正式规则(并且单元测试通常测试"规范"实现)并接受程序将如果有人开始使用不合格的实施,那就行为不端。