您何时在TDD中编写“真实”代码?
我在培训视频上阅读和看到的所有示例都具有简单的示例。但是我看不到绿色后如何执行“真实”代码。这是“重构”部分吗? 如果我有一个使用复杂方法的相当复杂的对象,并且编写了测试和最低要求以使其通过(在它第一次失败后为红色)。我什么时候回去写真实的代码?在重新测试之前我要写多少实际代码?我猜最后一个是直觉。 编辑: 感谢所有回答。您的所有回答都极大地帮助了我。关于我所问或困惑的事情似乎有不同的想法,也许有,但是我所要问的是,说我有建校的申请。 在我的设计中,我有一个要开始的架构,即“用户故事”,依此类推。在这里,我将获取这些用户故事,然后创建一个测试以测试用户故事。用户说,我们有人入学并支付注册费。因此,我想一种使失败的方法。为此,我为X类(可能是学生)设计了一个测试类,该类将失败。然后,我创建“学生”类。也许我不知道“学校”。 但是,无论如何,TD 设计迫使我思考整个故事。如果我可以使测试失败,那么我知道为什么会失败,但这以我可以通过测试为前提。这与设计有关。 我将此比作考虑递归。递归并不是一个很难的概念。可能很难真正掌握在脑海中,但是实际上,最难的部分是知道递归何时“中断”,何时停止(当然,我的看法。)因此,我必须考虑停止什么递归优先。这只是一个不完美的类比,它假定每个递归迭代都是一次“通过”。再次,只是一个意见。 在实施中,学校很难见到。在可以使用简单算术的意义上,数字分类帐和银行分类帐是“容易的”。我可以看到a + b并返回0,依此类推。对于一个人系统来说,我必须更加思考如何实现它。我有失败,通过,重构的概念(主要是由于学习和这个问题。) 我认为,我不知道的原因是缺乏经验。我不知道如何无法注册新学生。我不知道如何使某人输入姓氏并将其保存到数据库中。我知道如何为简单的数学做一个+1,但是对于像一个人这样的实体,我不知道我是否只是在测试是否有人返回一个数据库的唯一ID或其他东西。数据库或两者兼而有之。 或者,也许这表明我仍然感到困惑。