在我最近的项目中,我和我的团队成员聚集在一起,仔细研究了需求,并一起创建了我们都同意的接口(interface)(带有方法声明,但没有实现)。然后,我们开始编写单元测试,然后是实现。
现在,我的项目负责人说我们的方法是错误的。他说我们应该先创建一个测试,然后再提出接口(interface)。
我们首先提出接口(interface)的原因之一是我们认为必须有一个接口(interface)声明才能创建模拟测试。
哪一个是正确的方法?
最佳答案
测试驱动开发从单元测试开始。
在您的单元测试中,您定义了树阶段:Arrange、Act 和 Assert。此时您的代码将无法编译,因为类/接口(interface)尚未定义。
但是这些步骤确实可以帮助您考虑您的界面。在您的情况下,与其在白板(或其他东西)上与您的同事讨论您需要的接口(interface)和方法,不如编写一组单元测试来勾勒出您需要的类和接口(interface)。
通过以测试先行的方式编写单元测试,您可以强制自己在考虑实现之前查看类的外部。这就是 TDD 的方式。
很快就会在为项目定义所有接口(interface)时考虑模拟。在您的单元测试中,您测试一个类。一个具体的对象。在编写该对象时,您会遇到您的类需要其他对象的情况。那是您开始考虑依赖关系的时刻,这会导致使用接口(interface)和依赖注入(inject)。
关于testing - 单元测试。在创建界面之前还是之后?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16238996/