2013-03-28 29 views
1

使用红宝石/黄瓜,我知道您可以明确地调用fail("message"),但您还有其他选择吗?我可以在黄瓜场景中强制使用什么结果

我问的原因是我们有0 ...我重复,绝对没有控制我们的测试数据。我们进行了黄瓜测试,测试我们的数据库中可能有或没有用户的边缘案例。我们(出于显而易见的原因)不想扔掉测试,因为它们很有价值;但是由于我们的数据集无法测试该边界情况,因为sql语句返回一个空的数据集,所以失败。现在,我们只是让这些测试失败,但是我希望看到“no_data”或类似的东西,如果sql语句返回一个空的数据集。所以输出会是什么样子

Scenarios: 100 total (80 passed, 5 no_data, 15 fail) 

我愿意使用已实行“跳过”如果有skip("message")功能。

我的选择是什么,所以我们可以看到,使用当前数据,我们没有任何测试数据用于这些测试?使这些手动测试也不是一种选择。他们需要在我们的自动化过程中每周运行一次,但不知何故与故障分开。失败意味着缺陷,发现no_data意味着它不是一个可测试的条件。这是警告之间的区别:我们还没有测试过这个边缘案例,警报:破解代码。

回答

2

您不能调用'跳过',但您可以肯定地调用pending有或没​​有错误消息。我已经在类似的情况下使用过它。除非你在严格模式下运行,否则挂起的场景不会导致任何故障。我遇到的问题是,偶尔会出现拼写错误,导致黄瓜将其标记为待处理,因为它不符合步骤定义。然后,这种情况在'合法'未决情景的海洋中消失了,并且在我们发现它之前的几个星期。

+0

我也在黄瓜gem中自己修改了summary.rb和html.rb文件,所以当我们在测试套件结束时输出结果时,“待定”测试实际上显示“no_data”而不是挂起。这使P.O.更容易。读书。 –

相关问题