有没有办法避免不同背景的Cucumber场景重复



我们开始使用cucumber(Java(并非常喜欢它,但cucumber似乎在一个非常重要的情况下完全失败了:

基本上,我有一个为给定登录用户运行的场景,我需要用不同类型的登录用户运行所有相同的测试。

然后,在那之后,我需要运行大多数完全相同的场景,其中用户以不同的角色(具有重叠权限的多个角色(登录

如果有后台概要功能,这将是干净而琐碎的,但这似乎在几年前就被否认了(https://github.com/cucumber-attic/gherkin/issues/56)

我知道以前有人问过这个问题,但我一直在寻找非常古老的线索(大约6年前!(,除了"复制你的所有场景"之外,没有其他答案。

重复数百个场景在各个方面都是失败的,这会使测试基础无法管理(一个场景中的更改需要传播到多个重复(。它未能实现黄瓜的核心通信目标,因为我们得到了大量的功能文件,这使得我们更难知道应用程序在做什么以及我们在测试什么。

自第一次投诉以来的6年里,有什么合理的方法来处理这件事吗?

在这一点上,我很想删除背景,将其移动到每个场景中,并使用场景大纲,这很难看,测试读取不再那么干净,但至少我不需要重复场景。

然后,我需要运行大多数完全相同的场景,让用户以不同的角色(具有重叠权限的多个角色(登录

您想要测试一个权限,但却在测试角色。在我看来,这是造成你大部分问题的原因。由于角色通常是配置的,您可能能够利用此系统。

Given a customer service rep with the authority to grant refunds 
And a customer reports a problems with the PX-11 Widget
When customer service resolves the problem by granting a refund
Then problem ticket is closed
And a refund request is lodged with finance

在给定的步骤中,您为客户服务代表创建了一个新的角色,可以授予退款。

如果你担心角色可能会以奇怪的方式相互影响,你应该尝试在较低的级别上解决和测试这个问题。在你的验收测试中,这不应该是一个问题。

然而,如果您无法做到这一点,您可能需要考虑以下三个选项中的任何一个。它将以增加一些测试复杂性为代价,保持小黄瓜的可读性。但这种复杂性表明了一个有问题的系统。

  1. 除了您关心的其他权限外,还创建了多个具有所请求权限的客户服务代表。然后,在接下来的每一步中,你都要让所有代表做特定的动作。

  2. 对于每个测试,除了请求的权限外,还可以随机选择一个或多个权限。

  3. 随机选择一个具有所需权限的角色。

最新更新