English 中文(简体)
为什么总是对最小的法典单位进行测试,这是最佳的做法? 我发现,这些试验永远不会在令人振奋的情况下生存下去。
原标题:Why is it a best practice to always unit test the smallest possible unit of code? I find those tests will never survive a refactoring
  • 时间:2009-09-18 17:01:31
  •  标签:

多年来,我一直是试验推动发展的实践者,总体上对它感到高兴。 我尚未理解的一个方面是,大家应该总是对最小单位进行单位测试。

单位测试的部分想法似乎是让你相信你会赢得任何突破。 然而,我发现,测试非常小的法典的测试几乎永远不会幸存这些重因素,因此,该法典总是大大改变,小单位试验刚刚消失,新的测试是书面的。 测试涉及较大的功能,似乎给这里带来最宝贵的价值,因为较高层次的界面没有变化。

而对于三维因素,如环绕的移动方法,这些是刚刚通过民主选举学会进行的,而且由于使用固定类型语言的i m,我从未陷入这样的局面,即民主选举学会无法完美地完成这一重任。

任何其他人都有类似或相反的经验?

最佳回答

我发现的是同样的事情——但我认为重要的是区分的是私人的法典单位和可以公开查阅的法典单位。 我确实认为,必须始终对“公众人物所暴露的尽可能少的、可使用的守则单位”进行测试。

公益物在重新设计时不应改变(因为它打破了二元兼容性和版本),因此这一问题确实存在。

关于私人产品,这里有平衡。 你们的测试越小,你就越能依靠你的测试。 你们的测试越高,测试就越灵活,就越有可能恢复。

尽管如此,我认为两者都很重要。 大规模重算总是需要重新工作测试,这只是整个测试的一部分。

问题回答

它是一个非常问题,如Goldilocks和三个熊。 你们想要的不是太小,不是太大,而是公正的。

如果 gr度太小,那么你会发现它浪费时间。 如果规模太大,它就可能错失重要的制约因素,而这种限制应始终不.,而不能再作成。

与任何“最佳做法”一样,这些想法往往在理论上得到发展,但需要某种常识,并适合你们的具体情况,才能对你们有用。

让我看到,对较小的一组代码进行了测试,你从测试失败中获得的更多信息。 如果你有涵盖更大范围的法典的较高层次测试,那么失败就会告诉你问题在哪里。

http://en.wikipedia.org/wiki/Read_development”rel=“nofollow noreferer” 测试驱动发展,这需要一个反复的写作周期,对一小部分功能进行测试,建立功能,满足测试要求,然后重新确定测试/编码可能增加的任何重复。 就像你在事后测试的那样(“守则总是大大改变,小单位试验刚刚消失”。) 如果测试是功能特征(如同在TDD一样),再设计永远不会造成“不生存”的检验。

因此,假定您不真正从事TDD工作,你正在奋力应对如何用标准书写,而花多少时间制定生产法。 我要说,我写了足够的测试守则,这样你就知道你的法典是应该做的。 如果你能够做更多的粗金.测试,那么,像其他人所说的那样,这种微额罚款使得人们更加难以知道造成失败的原因。

测试不仅是为了重温。 了解你的工作情况。 这样,你就能够增加新的功能,相信你会打破老旧。 长期以来,你们会走过别人,可以去理解你们的法典,改变它,相信它会发挥作用。

我确实建议你遵循TDD的做法,如。 事后的写作测试比没有测试好,但我发现,与TDD相比,成果少得多。

大部分时间,我只检查公共课堂和方法。 因为我认为,正如你所说的那样,私人成员太不稳定,可能会发生变化。

对私人和内部成员的修改表明,你改变了内部算法,而对公众成员的修改则表明存在对人性的修改。 如果我想改变一个私人成员会改变我的班子的属性,那么该成员可能毕竟是私人的。

在重新计算你的班级的内算法时采用的一种推算法,使测验时间达到90%,大多数时间,如果你经常和早期测试,则很快发现。

我早就采用了更多的BDD方法,最终不能像结果那样测试功能。 在这样做时,你仍在测试功能,但根据预期结果来衡量。 我认为,这样做使你的测试更有意义、更小的碎片、更适用,而且最后写得更少。





相关问题
热门标签