问题标签 [scenarios]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
477 浏览

bdd - 一种情况下的多方面行为?

当我偶然发现这个问题时,我正试图深入了解自己的问题。据我了解,正在表达和测试两种不同的功能(查看关于它们的两个Whens 和两个Givens)。这样做是否正确?

0 投票
4 回答
5108 浏览

maven - JBehave & Maven - 如何跳过场景测试

我正在使用 jbehave 和 jbehave maven 插件来运行一组场景测试。

让我的测试类扩展 JUnitStories,一切正常。唯一的问题是,我无法停止运行测试......

每次我运行 maven install 目标时,它都会运行测试。我尝试在下面添加一个跳过场景配置文件,但它不会阻止测试运行。

我也尝试过使用排除标签而不是跳过,并排除我的场景类,但没有运气。

我真的很感激你们的任何见解或想法!谢谢!

0 投票
2 回答
1275 浏览

ruby - Cucumber:后台失败仍然以代码 0 退出

我想知道一些事情,当背景失败时,黄瓜会返回退出代码 0(据我所知,这意味着“好的”)。

现在失败的步骤可能不应该在后台(我猜充其量是在“之前”的钩子中??)。但是有人知道它返回这个退出代码的原理是什么吗?它是错误还是功能?

附录:一个更具体的例子:假设这段代码通过了:

它返回退出代码 0。让它失败:

输出显示一个失败的步骤,并返回退出代码 1 当我将失败的步骤移动到后台时:

输出仍然显示它失败,但它返回退出代码 0

0 投票
3 回答
427 浏览

python - 如何在中间终止 python 2 doctest 文件?

有时只运行大型 doctests 文件的第一部分会很有用。

在代码更改后第一部分中断的情况有很多,我想只运行第一部分,直到它通过,然后再次运行整个文件。

我还没有找到一个简单的方法来做到这一点。

假设我用这个文件开始我的文档测试:

而scenario.rst 看起来像这样:

在这个例子中,我使用 exit() 函数来演示我的意思,当然它不起作用,因为它被视为异常,doctest 很高兴地将其视为可以测试的东西的一部分:

那么这样一个doctest文件怎么会在中间被终止呢?

编辑:有 +SKIP 指令,但它只跳过一行。我需要一些跳过文件其余部分的东西。

0 投票
0 回答
529 浏览

python - 生菜:在场景大纲之前运行代码

我将生菜 0.1.35 与 Python 2.6 一起使用,我注意到当我定义场景大纲时,使用@lettuce.before.each_scenario装饰器定义的代码不会在场景大纲的每个实例之前运行 - 当我将每个场景定义重复为不同的场景时,这代码运行。

如何在同一场景大纲定义的每个场景之间运行一些代码?

0 投票
4 回答
4264 浏览

maven - Maven JBehave:编码故事 UTF8

我们设法使用 Eclipse 中的 JBehave 创建和运行具有国际化故事的测试。一切都很顺利。

但是当我们尝试使用 maven 插件运行它们时,我们无法对编码问题一无所知(例如,不是从故事中读取“scénario”,而是得到“Scénario”:显然是一个 UTF8 编码问题) .

是否有人找到了一种方法让 JBehave 使用 maven 插件以 UTF8 格式阅读故事?

我们已经尝试过的:

  • 添加 -Dfile.encoding=UTF-8 选项
  • 使用 UTF8 更改关键字文件
  • 更改 ISO => 中的整个项目编码,它可以工作但不适合需要以 UTF8 显示消息的生产部分

我们的 Pom.xml

0 投票
2 回答
1626 浏览

browser-automation - 编写自动化端到端用户场景的有效方法是什么?

在自动化用户场景时,我们通常涵盖端到端的用户流程。单元测试建议每个测试方法应该是独立的,并且只测试一件事。但是在系统验收测试中情况有所不同,因为我们必须涵盖通过应用程序的用户流程。

考虑一个电子商务应用程序,其中用户旅程通常遵循以下步骤:

1 - 访问主页
2 - 搜索产品
3 - 选择产品
4 - 将产品添加到购物车
5 - 点击结帐
6 - 登录
7 - 输入付款详情
8 - 提交订单
9 - 等待确认

现在这些步骤中的每一个都需要在我们浏览用户旅程时进行验证。因此,测试方法存在依赖性,例如第 3 步依赖于第 2 步,这破坏了单元测试实践。此外,如果我们将所有步骤都放在一种测试方法中,那么如果测试失败,就不容易检测到哪里出了问题。如果我们想隔离每个测试方法,使它们彼此独立,我们必须一遍又一遍地重复初始步骤。

我过去所做的是使用 TestNG 来提供对以前测试方法的这种依赖。我想知道如何在您的测试中处理用户旅程。

您如何处理测试中的用户旅程?

0 投票
1 回答
960 浏览

cucumber - Cucumber:@wip 标志对 Guard 的行为很奇怪

可能重复:
如何让 cucumber/guard 过滤 @wip 之类的标签?

我有以下场景:

运行它时(通过保存它以便由 Guard 调用它),只有第二个被执行,正如预期的那样。但是当保存任何其他功能时(这也使此功能运行),@wip 标记似乎被忽略了。这是正常行为吗?

更新

通过使用--tags ~@ignore,我可以禁用尽可能多的功能。我仍然没有真正了解@wip 是如何工作的(或者更好的是:为什么它以它的工作方式工作)。

0 投票
2 回答
162 浏览

bdd - BDD 场景是专有的吗?

如果两种情况可以同时发生,那(总是/永远)是否构成第三种情况?

我目前的想法是它们不一定是排他的(取决于场景)。如果您有两个可能同时发生的场景,如果 Given/When/Then 步骤没有隐式合并或者如果一个场景优先于另一个场景,则它们只需要第三种场景。

这个问题是在考虑本质上是一种注入形式的场景时出现的,其中对象集合被注入另一个对象(https://github.com/jameskennard/mockito-collections)。因此,给定两种情况“被测对象类有一个协作者列表”和“被测对象类有一个协作者集”。两者都可能同时发生,因此第三种情况可能是“被测对象的类别有一个列表和一组合作者”。但这感觉不对,太冗长了,我认为 Given/When/Then 步骤会被视为隐式合并。(有一种不好的感觉,我可能刚刚回答了我自己的问题)

有人有什么不同的想法吗?

0 投票
3 回答
1288 浏览

cucumber - BDD:明确的例子 - 适当的代词?

在编写场景时,是否有人强烈主张选择以下样式中的一种而不是另一种?

或者...

或者...

它们似乎都工作得很好——我想知道我是否遗漏了一个明显的陷阱,因为很多例子似乎都使用了参与者的特定值(不仅仅是输入/结果的特定值)。

我反对使用的唯一论点:

如果其他参与者也可以使用相同的功能,则必须定义单独的等效步骤。

就个人而言,我认为“我”读起来很好(尽管我觉得我不知道)。想法?