0

我正在学习在小项目中实践 TDD。我想创建一个倒数计时器类,如何在 TDD(Red, Green, Refactor) 中实现它,它也有委托回调。

4

2 回答 2

2

我不确定您的确切问题,但我想您想知道如何首先为倒数计时器编写测试?

如果是这样,请从编写主要测试之一开始,例如开始、停止或重置。这些是您的操作事件,将是您首先调用的事件(最有可能)。首先对这些测试进行编码并执行它们。它们应该是红色的,因为它们实际上无法运行倒数计时器。

然后将虚拟代码添加到倒数计时器中的功能之一。例如,添加启动倒数计时器的 Start() 函数。暂时将该函数留空。测试应该仍然是红色的

现在我们需要添加一种方法来获取当前剩余时间。添加一个“剩余”属性,我们可以在其中检查剩余时间。更新测试以捕获此属性,启动计时器,然后再次检查该属性以查看它是否已更改。测试应该仍然是红色的,因为我们没有更改属性的代码。

更新 start 方法以启动倒计时过程并更新倒计时计时器的内部结构。现在重新运行您的测试,它应该是绿色的,因为值正在改变。

现在是重构的时候了。查看您的代码并清理内容。尽可能简化,然后重新执行测试。如果一切正常,一切都应该是绿色的,您可以继续进行下一个测试。

希望有帮助。

于 2010-03-17T04:46:21.640 回答
0

通常我不会在单元测试中测试类似的东西。相反,我将保持该代码尽可能小,并让它在我想要的时间、经过的时间或只是一般的“现在开始工作”类型的消息中调用完成工作的类。

于 2010-03-17T05:45:42.903 回答