如何创建测试?

How to create tests?

很抱歉提出一般性问题,但对 TDD 有疑问。 TDD 首先说创建测试用例,然后编写代码。但是我很难遵循这个步骤。我的意思是从头开始创建代码,首先我概述了对象之间的关系,然后从理论上讲我开始测试,但对我来说有点难以抽象出我需要在测试中编写的所有内容。

很抱歉,如果这是一个愚蠢的问题,但是您首先为创建测试做了什么?在真正开始编写测试或其他东西之前,您列出了将要测试的所有行为?

您可能想得太大了。当您谈论大纲和多个对象时,您是在考虑全局和单元测试——我们在谈论 TDD 时通常谈论的那种测试——单元测试是关于测试功能的微小元素。甚至没有完整的 classes,只有那些 classes 的个别方法。在编写代码之前,您并没有预期并编写一组测试——您正在编写一个测试。一个小测试,然后编写使该测试通过所需的代码。然后根据需要清理,然后使用下一个微小的功能再次迭代。

您将对要编写的对象以及它们之间的关系有一个概念,但只是一个模糊的概念,您不需要事先完善它。相反,您可以边进行边改进,逐个测试,逐个方法地进行测试。当您认识到一种改进设计的方法时——您目前开发的具体的已经编写的 classes——您进行了改进,因此您的设计,而不是在没有上下文的情况下提前精心想出classes 和测试,相反,您的设计通过您的代码和测试与您的代码和测试一起出现,一次一点。

从单项测试开始。您需要创建一个 class 来通过该测试,并且您需要向该 class 添加一个方法。当您对单个 class 的单个方法的状态感到满意时,然后找出下一个功能应该是什么,并为其编写测试。

这就是 TDD。这需要实践和纪律,但这是编写出色代码的好方法。祝你好运!