当前位置: 首页 > 知识库问答 >
问题:

BDD和TDD,正确的工作流程是什么?

罗华翰
2023-03-14

BDD是一个评估软件需要如何运行的过程,然后编写代码所依据的验收测试。您可以使用TDD方法编写代码,为方法编写单元测试,并围绕单元测试(代码、测试、重构)构建类。当代码编写完成时,您将对其进行测试,以查看是否满足原始的验收测试。

有经验的人可以对我的解释进行评论,并用这些敏捷原则来演示一个简单的应用程序吗?我看到在不同的出版物中有大量关于BDD和TDD的文本,但我正在研究这两个过程在现实世界的开发中是如何相互补充的。

共有1个答案

巫马嘉祯
2023-03-14

试着把它们当作例子,而不是测试。

对于整个应用程序,我们给出了一个用户如何使用该应用程序的示例。该示例是一个具体的行为实例,说明了该行为。例如,我们可以说till应用程序允许退款。使用该钱柜的钱柜操作员应该对弗雷德拿回微波炉退款的情景很熟悉:

考虑到弗雷德花100美元买了一台微波炉
当他把微波炉拿回来退款
那么他应该得到100美元的退款到他的信用卡。

// Given a microwave was sold at 10% discount for $100

...

// When we calculate the refund due

...

// Then the calculator should tell us it's $90.

...

通常,“BDD”指的是描述整个应用程序的场景,但这些想法实际上是从单元级别开始的,其原理是相同的。唯一的区别是,一个是用户使用应用程序的示例,另一个是类使用另一个类(或函数,或您拥有的东西)的示例。所以应用程序外部的BDD类似于ATDD(接受测试驱动开发),类的BDD类似于TDD。希望这能帮助您了解这些概念是如何联系在一起的。

唯一不同的是,我们去掉了“测试”这个词,因为我们发现向人们索要一个例子比一个测试更容易,而且这有助于让人们一直思考他们是否理解问题,而不是思考如何测试一个解决方案。

这个关于“自上而下”(或“外-内”)与“自下而上”的答案也可能对你有帮助。

 类似资料:
  • 本文向大家介绍说明TDD和BDD之间的差异。,包括了说明TDD和BDD之间的差异。的使用技巧和注意事项,需要的朋友参考一下 下面列出了测试驱动开发(TDD)和行为驱动框架(BDD)之间的区别- Sl编号 TDD BDD 这是由开发人员驱动的。 2 这主要集中在应用程序功能的编码实现上。 3 这主要用于单元测试。 4 流行使用的工具是JDave,SpecFlow等。 5 TDD被称为“测试驱动开发”

  • 我一直得到这个错误与我的SQL:我的SQL是正确的,它的工作在控制台中,但不是在python文件中。我认为错误是在参数中,因为代码似乎工作,就在参数之后,我的打印(完成)不打印:)但我看不到它:/ 这是我的代码(顺便说一句,我在数据库中使用全局变量g,它在我的其他函数中工作):

  • 修改文件,将它们更新的内容添加到索引中. $ git add file1 file2 file3 你现在为commit做好了准备,你可以使用 git diff 命令再加上 --cached 参数 ,看看哪些文件将被提交(commit)。 $ git diff --cached (如果没有--cached参数,git diff 会显示当前你所有已做的但没有加入到索引里的修改.) 你也可以用git

  • 我在网上搜索了很多,但我没有找到任何明确的答案。到目前为止,我的理解是: < li >消费者手动为每个提供者编写合同(也许他们为合同添加了版本控制?) < li >消费者与提供商共享合同 < li >提供商使用Spring Cloud Contract Verifier依赖项和插件来生成几个测试文件 < li >提供商针对其服务运行测试文件并生成测试结果 < li >提供程序通过运行测试生成单个存

  • 短版 Spotify Android应用程序在最近的一个版本中引入了一个“设备广播状态”开关,我想在我的应用程序中接收那些广播。有哪些广播可用,我应该如何配置我的广播接收器? 我从Spotify应用程序本身中使用了设备广播状态开关,我很高兴该开关取消/激活了这些广播事件。 我现在遇到的问题是,这些信息似乎只是零星地发送。我接收playstatechanged事件(播放、暂停、下一个、上一个),但它