Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cucumber BDD传递Recaptcha和null值-最佳实践_Cucumber_Bdd_Gherkin - Fatal编程技术网

Cucumber BDD传递Recaptcha和null值-最佳实践

Cucumber BDD传递Recaptcha和null值-最佳实践,cucumber,bdd,gherkin,Cucumber,Bdd,Gherkin,我对与Cucumber相关的最佳实践的BDD有两个疑问 我有一个自动用户注册页面 您可以输入您的个人数据,例如:姓名、电子邮件和确认信息 之后,您可以选择您感兴趣的站点选项(有10个组合框,可以任意多个)。 插入recaptcha并发送 我需要验证所有成功和失败的案例 因此,以下是我的问题: 1) 用recaptcha翻页。 由于不可能自动执行recaptcha,而且这一步骤自然会进入我的测试,我是否应该为无效的recaptcha验证创建一个场景 2) 有没有什么聪明的方法可以让我写一个场景,探

我对与Cucumber相关的最佳实践的BDD有两个疑问

我有一个自动用户注册页面

您可以输入您的个人数据,例如:姓名、电子邮件和确认信息 之后,您可以选择您感兴趣的站点选项(有10个组合框,可以任意多个)。 插入recaptcha并发送

我需要验证所有成功和失败的案例

因此,以下是我的问题:

1) 用recaptcha翻页。 由于不可能自动执行recaptcha,而且这一步骤自然会进入我的测试,我是否应该为无效的recaptcha验证创建一个场景

2) 有没有什么聪明的方法可以让我写一个场景,探索所有可能的站点兴趣选项组合

在我的页面中: ()经济 ()教育 ()体育 ()娱乐 ()旅行 ()

我希望能够通过测试选定的1个选项、2个选项、3个选项、…、所有选项,多次提交测试。 但我只是想做它,如果有一个精益的方式做它


换句话说:在场景大纲示例中,在这种情况下我可以传递空值吗?

关于验证码,我可能会验证损坏的验证码是否会阻止用户。验证正路径显然很难,因为验证码用于阻止机器人,而自动验证与机器人相同

关于核实你所有的选择,我会看看我是否可以在表面下这样做。使用浏览器从用户界面执行此操作的速度很慢,您所说的是2^10个组合。这是很多案例。如果需要对所有组合进行测试,则改为对控制器进行测试。在这种情况下,Cucumber之类的工具可能不是您的最佳选择。编程语言可能比小黄瓜更好


如果你仍然想使用Cucumber,至少要快一点,避免使用浏览器。我写了一篇关于适合这份工作的工具的文章。这可能有助于您理解为什么不必在所有情况下都进入UI。

根据Thomas在Captcha中提到的内容,我想说这是少数无法自动测试的事情之一(负面路径除外)

我也同意Thomas的观点,即您不应该希望使用可执行规范来测试选项的每一种可能性,而是应该使用集成测试,或者如果这部分代码的体系结构允许的话,甚至可以使用单元测试

对于小黄瓜格式的实际可执行场景,我看到该功能如下所示:

Given Paul supplied the incorrect Captcha
When he wants to register himself
Then he should not be registered
  • 您可能想知道我们是否应该在场景中使用实现词Captcha,因为在我们的实现中用Captcha替换其他内容时,它将是不正确的
根据在未选择任何选项时是否允许某人注册,可能存在其他潜在情况:

Given Paul has not chosen any of the possible interest topics
When he wants to register himself
Then he should not be registered
  • 请注意,when和then部分的语句被重用,以减少测试代码