为什么我应该练习测试驱动开发,又应该如何开始?
时间:2020-03-05 18:38:13 来源:igfitidea点击:
在开始编写代码之前,许多人谈论为代码编写测试。这种做法通常简称为"测试驱动开发"或者TDD。通过这种方式编写软件可以获得什么好处?我如何开始这种练习?
解决方案
回答
收益部分最近已涉及到,从何处开始。...在一个小型企业系统上,该系统没有太多未知数,因此风险很低。如果我们还不了解测试框架(例如NUnit),请从学习开始。否则,首先编写第一个测试:)
回答
我认为,最重要的一点是,它显然使我们可以查看代码是否按照预期的方式工作。这看起来似乎很明显,但是正如我过去发现的那样,很容易将最初目标误入歧途:p
回答
有很多好处:
- 我们会立即获得有关代码是否正常工作的反馈,从而可以更快地发现错误
- 通过查看测试从红色变为绿色,我们知道我们拥有有效的回归测试和有效的代码
- 我们将有信心重构现有代码,这意味着我们可以清理代码而不必担心它可能会破坏代码
- 最后,我们可以在自动化构建过程中运行一套回归测试,以使我们更加确信自己的代码库是可靠的
最好的开始方法是开始。肯特·贝克(Kent Beck)有一本关于测试驱动开发的好书。只是从新代码开始,不必担心旧代码...每当我们觉得需要重构某些代码,编写一个针对现有功能的测试,然后对其进行重构,并确保测试保持绿色状态。另外,请阅读这篇很棒的文章。
回答
好处
- 我们知道如何划分代码
- 我们可以弄清楚我们想要代码执行的操作
- 我们知道它应该如何工作,并且在将来,如果重构无法解决任何问题
- 使我们养成确保代码始终知道它应该做什么的习惯
入门
去做就对了。为我们要执行的操作编写一个测试用例,然后编写应通过测试的代码。如果我们通过了测试,那就太好了,我们可以继续编写代码总是会失败的案例(例如2 + 2不应等于5)。
一旦所有测试通过,请编写实际的业务逻辑以执行我们想做的任何事情。
如果我们是从头开始,请确保找到了易于使用的良好测试套件。我喜欢PHP,因此PHPUnit或者SimpleTest可以很好地工作。几乎所有流行语言都提供了一些xUnit测试套件,以帮助构建和自动化测试。
回答
好入门:
Brett L. Schuchert使用Eclipse在Java中使用Tdd入门
是一组有关Java和C#中TDD的截屏视频。它是从TDD的基础知识和教学基础开始的。