既然我们想设计Django polls应用程序,那么接下来我们该如何进行BDD呢

2024-03-28 12:24:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我来自python/django的背景。你知道吗

我一直在读关于BDD的书,为什么它比TDD更棒。但我脑子里几乎没有疑问的是,做BDD的理想方法是什么?是否排除了编写单元测试的可能性?是否排除了进行集成测试的可能性?我找不到答案,也找不到实现BDD的有序路径。你知道吗

为了通过TDD设计django polls application,我将如下所示:

  1. 为模型编写测试,然后使测试通过。

  2. 为表单编写测试,然后使其通过。

  3. 为视图编写测试,然后使其通过。

  4. 为自定义模板标签和中间件编写任何其他测试,并使其通过。

  5. 从我开始写视图开始,就要不断地编写集成测试。

根据我的阅读,我能理解的是,如果我设计一个django民意测验应用程序,我必须遵循以下流程:

  1. 用小黄瓜语法编写场景

  2. 编写步骤

  3. 在这些步骤中,可能会基于ui响应(集成)使用一些断言(unit)

  4. 不确定,下一步做什么/怎么做,甚至第3部分是正确的。

请帮我澄清我的困惑,并提出一个简短的提纲

请告诉我,我该怎么办。当我们执行django polls application时,尝试BDD的顺序方法是什么。你知道吗

(我希望这个问题,不是主观的,所以是一个很好的地方问它,如果不是不要杀我。)


Tags: django方法答案视图application步骤单元测试可能性
1条回答
网友
1楼 · 发布于 2024-03-28 12:24:04

虽然BDD包含一些特定的技术实践(比如由场景引导的自动化、由外而内的开发、单元测试等等),但它的主要目标是改进项目内的通信(包括非技术涉众)。你知道吗

从收集规范开始-以示例的形式-通过与涉众讨论。这可以用很多方法来实现,这里最重要的是交谈。在讨论过程中,不要强迫他们或你自己去写一些小黄瓜的有效场景。只需捕获预期的行为以及验收标准(即系统必须遵循的约束条件)。你知道吗

然后,你将把场景形式化,理想的情况下,与业务人员一起检查它们。这个阶段很有趣,因为它将验证您(和团队)对规范的理解。你经常会意识到自己做了错误的假设:)

当您定义了一系列规范(特性)并约定了它们的优先级后,就可以开始实际的开发过程了。你知道吗

我通常的工作方式是这样的:

  1. 运行一个场景,看到它的第一步没有定义
  2. 为该步骤添加步骤定义
  3. 再运行一次,看到它因为缺少实现而失败
  4. 为缺失的系统行为编写一个单元测试/规范
  5. 运行测试,看它失败
  6. 让它过去
  7. 重构你的代码
  8. 再次运行场景
    • 如果一个步骤失败,请转到#4
    • 否则,如果步骤未定义,请转到#2
    • 如果您完成了此场景,请转到下一个:)

这基本上是由外而内的发展。正如您可能已经注意到的,步骤4到7是通常的TDD循环。这个工作流程的一个好处是TDD周期得到了正确的引导:您不必考虑下一步要做什么。由于场景失败堆栈跟踪,实际的下一个所需行为将显式显示给您。你知道吗

当然,这是做事的一种方式。没有什么东西是用石头写的,你可以改变它。你知道吗

相关问题 更多 >