0

I'm a beginner with TDD; I've just read TDD by example and now I can't seem to stop writing code in a TDD fashion. I've noticed that a lot of the time I'm writing a test, see it fail, correct it, and refactor. And then after some tests I see that there was actually a better way to write the interface all-along which leads me to want to change some of the previous tests.

It obviously makes a lot of code I write a waste of time, so I'm wondering if it is a good practice to write all of the tests at once (or at least try to) in-order to save time? I'm asking because I know it's not the standard way, but is it wrong?

4

2 回答 2

1

真正的问题是“你是否在给定的时间内完成了更多完成的代码?” 不管你写多少次,如果你最后得到更多,就把它扔掉。

随着您更多地使用测试,您将更好地确定测试是否好。问自己一个问题,“这个测试是否对代码有所帮助?” 它是否记录了如何使用代码?它是否检查代码在重构时没有被错误地修改?它是否测试代码在“快乐路径”上以及常见的故障类型上是否正常工作?

我会写一个测试,然后写一段代码。您必须确定“一个单元”代码的数量,但您会在执行此操作时感受到它。

然后我会更新测试以使其更好并改进代码以满足这些更改,或者编写另一个测试并更新代码以满足测试要求。

继续前进。一点测试。一点代码。它让你保持专注。

别忘了 YAGNI。(你不会需要它。)这就是说你只为你现在需要的东西编写代码的原则。不要为“以防万一”或“以后需要”编写任何代码。

以后会有自己的要求。你仍然会知道如何编码,也许会更好,因为你会有更多的经验。当你到达那里时,你认为你需要的可能(也可能不是)是你真正需要的。

过早编写代码是浪费时间和精力。

于 2013-05-14T15:48:53.173 回答
1

“因此,管理问题不在于是否建立一个试点系统并将其扔掉。你会这样做。[……]因此计划扔掉一个;无论如何,你会的。”

弗雷德布鲁克斯,神话般的人月

你不是唯一一个在事情完成后想出更好的方法来做事情的人。您实际上应该为此做好计划。:)

于 2013-05-14T19:31:06.590 回答