- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
鉴于此 API:
{{base_url}}/json/1F/flightavailability/adults=1&departureairport=CRL&departuredate=20190509&destinationairport=CZL
除“成人”外,所有参数都是强制性的。我需要为他们编写一个 BDD 场景和步骤定义来自动化场景:如果缺少任何这些强制参数,响应应该是“422,未处理”。
最佳答案
在查看 BDD 场景时,我总是喜欢进行对话,即使是针对 API 而不是 UI。我想象对话会像这样进行:
Shobha: So you don't need to know how many adults are travelling toprocess this, but you do need departure airport, departure date anddestination airport?
Business: That's right. If we don't know how many adults aretravelling, we assume it's 1, and we give back the available flights,priced with 1 ticket. Otherwise, we show all available flights andprices for the number of adults travelling.
Tester: What if there are no flights on that date?
Business: Ah, then it should say there are no flights.
Tester: What if there's 2 adults travelling, but only 1 seat on theplane?
Business: Oh, good catch - well, we should filter that out too.
Shobha: OK, so that's 5 scenarios - the one where mandatory data ismissing, the one with no flights,the one where the flight with too few seats is filtered out,the one with 1 adult by default, and the one with 2 adults.
(我把测试人员放在那里是因为他们非常擅长发现其他人没有想到的场景。)
因此,在讨论了系统应该做什么之后,我们现在有了一些不同的场景。
场景发生的上下文——所有事先创建的——是“给定的”。发生的 Action (提交航类搜索)是“时间”。产生的结果是“Thens”。您可以在“给定”中包含 URL 的设置 - 如果可以,请尝试使用业务语言而不是 API 语言来表达。
我也喜欢把事情具体化(提供目的地、出发日期和机场的例子),因为这有助于我们思考其他场景。
所以对于“强制数据丢失”的情况,我会有类似的东西:
Given a search for a flight on 17 Sep 2028 from LHR
When the search is submitted
Then the submitter should be told that the request could not be processed
And the text should contain "missing destination airport"
我不会为每个缺失的字段创建端到端的场景;在系统级别有一个就足够了。将其余的放在单元测试中(参见 Testing Pyramid ;避免测试冰淇淋甜筒)。写完它们后,获取反馈,看看您是否理解正确。
您的帖子缺少有关成功提交后会发生什么的信息;我在这里做了很多假设!我可能会把成功的提交和不成功的提交归为一组,除非数量太多导致混淆,然后将它们分开。
当然,您可能只是在测试验证/反腐败层!但是,如果您这样做,只需在单元测试中执行即可 - 您不需要 BDD 工具。
关于bdd - 无强制参数场景API测试,响应为错误码和消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66437560/
有没有人使用 BDD 来驱动他们的域层? 最佳答案 是的,我们发现这个过程非常有效,并且使用 specflow 来提供这种方法相当容易。我们仅在域层中就实现了 2000 多个场景,我们也使用这种方法来
你需要像Fitnesse这样的东西吗? , 如果您有 BDD测试? 最佳答案 BDD“测试”存在于多个不同的粒度级别,一直到最初的项目愿景。大多数人都知道这些场景。有几个人记得BDD started
对于在休闲游戏开发工作室开始学习和应用 BDD,您有什么建议? 最佳答案 虽然我不能说专门在游戏中使用 BDD,但我不能错过向您介绍这篇优秀文章的机会: http://www.code-magazin
我很喜欢 BDD 的开发方法,但我遇到了对走多远的担忧。这条来自 ThoughtWorks 的最新评论 Radar让我暂停: "The advent of behavior-driven design
我有很多相同的场景,它们只是传递给它们的数据不同。 这是示例: 功能:将报表中的事实链接到 Excel 文档 为了将事实链接到 Excel 文档 作为有权报告的用户 我想点击报告中的事实值 场景:任何
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
似乎互联网没有明确的答案,也没有一套原则来帮助我回答这个问题。所以我求助于 SO 上的伟大人物帮助我找到答案或指导思想:) SpecFlow 对于 .NET 中的 BDD 非常有用。但是当我们谈论 B
我是 BDD 的新人。所以我对场景有一些疑问? BDD 场景和用户场景之间有什么区别?与传统所谓的“用户场景”或“用例”有明显区别吗?你能解释一下吗? 最佳答案 由于您刚才提到的“传统用户场景”有点含
我是 BDD 的新人。所以我对场景有一些疑问? BDD 场景和用户场景之间有什么区别?与传统所谓的“用户场景”或“用例”有明显区别吗?你能解释一下吗? 最佳答案 由于您刚才提到的“传统用户场景”有点含
只是寻找 BDD/SpecFlow 的一些示例 - 理想情况下是一个项目б,这样我就可以了解如何在大型项目中使用 SpecFlow,其中多个功能引用相同的步骤等. 在过去的几个月里,我读了一些博客,但
我们有一个工作流引擎,它会显示可用工作流列表(我指的是工作流定义,而不是实例),用户可以单击任何工作流旁边的“执行”链接来执行该工作流的新实例。我想以 BDD 方式完成这个“执行工作流”故事(功能?)
有谁知道实现这一目标的方法,或者他们认为这是一个好主意。在 Gherkin 中使用 OR 样式语法以减少重复但保持人类可读性(希望如此)。我正在考虑使用多个 OR 语句的每个组合扩展子句组合的情况。例
我有许多 BDD 故事/场景(450+ 以及不断增加),我为现有系统继承了这些故事/场景:more info 。这些故事是使用文件系统文件夹组织的: C:\specifications |
我希望更改 Serenity 报告中的 CSS 和 Logo 。此外,我想在 Serenity 报告中添加一些自定义文本或一些测试的链接。就像生成了一个 excel 报告,我希望在报告的测试步骤中提供
我正在处理几个月前部分完成的代码分支,以及相互交织的依赖关系。因此,前进的最简单方法是将特定分支上的失败测试标记为待处理(rspec 方式)或跳过,并在所有内容合并后处理它们。 在其最终报告中,beh
我是 BDD 新手,使用 SpecFlow 我正在尝试制定一种高效、有组织且可维护的方法(用于 ASP.NET MVC 中)。我需要改进的主要方面是: 步骤分组(到步骤文件中) 重用测试对象(就像通过
我整个星期都在四处寻找,无法全神贯注于如何让我们的 pylons 服务器实例启动以与 Behave BDD 一起使用。你们中的任何人都可以指出我的例子或提供您自己的例子吗?这是我正在处理的内容: 来自
我正在尝试为多步骤业务流程编写需求(通过向导)。我有很多场景,用户与一个屏幕的交互会改变您是否可以在另一个屏幕上选择选项。 例如(我已经模糊了实际业务,但步骤的过程和形式几乎相同): Feature:
有没有人有在 BDD 中使用现成框架作为规范流与 CQRS 的经验。 我喜欢 Mark Nijhof 的方法,但是我已经将 SpecFlow 用于其他项目。任何人都可以提供一些启示,如果可能的话,举个
我们正在尝试为每个步骤截取屏幕截图。 一切正常。但是我们无法将屏幕截图与创建它们的步骤相关联。 我们想要的是类似 FeatureContext.FeatureInfo 的东西和 ScenarioCon
我是一名优秀的程序员,十分优秀!