测试驱动开发是一种编程方法,其中在编码之前创建测试。 下面,我列出了使其应用程序有用的一些原因。
- 1.测试可以作为代码的蓝图:在建造房屋之前,制定蓝图来帮助房屋建造者。 构建测试可帮助您了解应用程序的工作原理。 此外,它可以帮助您创建更优化的代码。
- 2.帮助开发者了解客户需求。
- 3. 可维护的代码,有利于团队合作,帮助未来的开发者。
- 4. 预防性,不仅仅是纠正性:构建测试可以让开发人员更加意识到可能发生的错误和边缘情况。
TDD 的三个阶段
TDD 的三个核心步骤:创建测试——实现代码——重构
1. 创建测试
此阶段将在提交消息中以“[RED]”开头。测试脚本需要精确但简单且可重用。例如,当您有一个按钮时,您可以检查它们在被单击后是否重定向到正确的路径。如果稍后您添加另一个,您可以重复使用它们。从这一步开始,您决定要实现的特定功能。使其具体而小。
然后,想象一下这个功能是如何工作的,可能的边缘情况是什么,将使用哪些组件,以及在制作测试脚本时它们将如何相互交互。您不必首先实现全部功能。测试一个小功能——实现——并迭代。
2. 实施代码
此阶段将在提交消息中以“[GREEN]”开头。对你来说可能是最令人兴奋的部分😜。开发人员将根据书面场景对功能进行编码。目的是从测试中消除当前的错误。
3.重构
此阶段将在提交消息中以“[REFACTOR]”开头。 在这个阶段,开发人员通过删除冗余而不改变程序的行为来优化他们的代码。
功能测试的类型
- 单元测试:检查最小的单元,如函数或方法,以使其正常工作。 自动化便宜。
- 集成测试:检查所有使用的模块是否可以很好地协同工作。 示例:对数据库的 API 调用。
- 验收测试:在发布前测试端到端产品。
..还有很多。 那么,您是否仍然怀疑最初的努力是否值得花时间? 事实上,测试并不是一个简单的概念。 你需要大量的练习才能获得最大的好处。 由于 TDD 起初可能看起来令人生畏,因此以下心态可以帮助您开始。
- 从一个小功能开始。
- 如果您从事单个项目,请对功能的流程充满想象力。 如果您与 PM 和其他用户一起工作,请有效地验证产品规格。
在行业中,测试的角色可以分配给软件工程师、QA 工程师或 SDET(测试中的软件开发人员)。 这取决于公司的政策。
我如何在我的项目中实现 TDD
上面是一个用 Jest 编写的典型前端单元测试的例子。 我创建了一个测试来检查操作员注册页面是否正确呈现(第 52-65 行)。 语法如下,
expect(/*get the component/).TestingFunction()
— 断言测试是否按照我们想要的方式运行。
A. 红色的
使用旧的提交消息约定,我首先为即将推出的功能创建了失败测试。 下面,我创建了两个测试来检查 1) 运营商注册页面是否正确呈现,以及 2) 当正确的用户通过身份验证时,运营商主页是否会正确呈现。 管道将失败,因为我还没有实现该功能。
b. 绿色
最新内容
- 18 hours 29 minutes ago
- 20 hours 45 minutes ago
- 21 hours ago
- 3 days 12 hours ago
- 3 days 20 hours ago
- 3 days 20 hours ago
- 3 days 20 hours ago
- 3 days 21 hours ago
- 1 week 1 day ago
- 1 week 1 day ago