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

小cucumber场景应该一直有什么时候才有?

羊丰茂
2023-03-14
Scenario: Show current balance
Given user is on account page
Then user should see his balance
Scenario: Show current balance
When user goes to account page
Then user should see his balance

我不确定我是否会一直使用第二个变体。如果我有多个场景共享上下文“user is on account Page”,并且其中一些场景有额外的用户操作,而其他场景没有,那么在我看来,将“user in account Page”作为给定步骤应该是有效的,尽管对于某些场景,它可能缺少“When”。这是一个有效的方法吗?

共有1个答案

翟卓君
2023-03-14

从形式上和技术上讲,Cucumber/Specflow并不要求您编写When-step,或者更确切地说,给定的/when/then只是按照在场景中编写的顺序执行。在这方面,你不需要一个当步。

但是,正如Andy Waite所写的,When-step显示了您的系统从“setup”中获取的操作或事件,以达到您在then-step中验证的新状态。在这方面,在每个测试中都应该有一个When-step(正如您所写的:否则我们测试什么)。

这就留下了你的最后评论;如果只是验证设置(假设系统已经启动,那么作为一个幼稚的示例,数据库是干净的)。在这种情况下,可以跳过When-step。

因此,一如既往,它归结为可读性和理解性。编写场景是为了使我们对系统行为的想法变得具体和清晰。使用优化的表单来理解和学习有问题的行为。

如果不对此深思熟虑,我可能会猜测,一般的建议是总是使用一个When-step来使事件或行为非常明显和清晰。在可能的情况下,我会避开含蓄和隐藏的行为。

我希望这能有所帮助。

 类似资料:
  • 本文向大家介绍AudioContext有什么应用场景?相关面试题,主要包含被问及AudioContext有什么应用场景?时的应答技巧和注意事项,需要的朋友参考一下 AudioContext实例有createAnalyzer(),可以实现音频可视化,还有一个gainNode,可以实现输入(MediaStream or HTMLMediaElement)音量的range调整

  • 问题内容: 我知道他们两个都禁用了Nagle的算法。 我什么时候应该/不应该使用它们中的每一个? 问题答案: 首先,不是所有人都禁用Nagle的算法。 Nagle的算法用于减少有线中更多的小型网络数据包。该算法是:如果数据小于限制(通常是MSS),请等待直到收到先前发送的数据包的ACK,同时累积用户的数据。然后发送累积的数据。 这将对telnet等应用程序有所帮​​助。但是,在发送流数据时,等待A

  • 问题内容: 在该类中,有两个字符串,和。 有什么不同?我什么时候应该使用另一个? 问题答案: 如果你的意思是和则: 用于在文件路径列表中分隔各个文件路径。考虑在上的环境变量。您使用a分隔文件路径,因此在上将是;。 是或用于拆分到特定文件的路径。例如在上,或

  • 本文向大家介绍Proxy是什么,有什么应用场景?相关面试题,主要包含被问及Proxy是什么,有什么应用场景?时的应答技巧和注意事项,需要的朋友参考一下 Proxy做数据劫持用的,和Object.defineProperty类似 可以直接监听对象,而非其属性 不过功能更强大,能监听数组,包含get, set, has, defineProperty, has, deleteProperty等十三个强

  • 本文向大家介绍Reflect是什么,有什么应用场景?相关面试题,主要包含被问及Reflect是什么,有什么应用场景?时的应答技巧和注意事项,需要的朋友参考一下 1.将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty),放到Reflect对象上。 修改某些Object方法的返回结果,让其变得更合理。比如,Object.defineProperty(obj,

  • 本文向大家介绍::first-letter有什么应用场景?相关面试题,主要包含被问及::first-letter有什么应用场景?时的应答技巧和注意事项,需要的朋友参考一下 段落首字放大效果