2013-06-01 48 views
2

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

+0

http://en.wikipedia.org/wiki/Test-driven_development。它有很多信息。 – Esteban

回答

1

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

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

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

+0

谢谢。这似乎是一个可行的模型。 –