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

使用Spock数据表测试Geb页面对象

司徒斌
2023-03-14

全面披露:我对Geb和Spock都很陌生。

when:
textBox = value
submit()

then:"value is updated"
at SuccessPage
textBox == value

where:
textBox | value
box1    | val1
box2    | val2
box3    | val3

共有1个答案

和谦
2023-03-14

数据表在为其指定的测试上下文之外执行。它们必须以这种方式执行,才能知道如何基于它们实际构造测试的多个迭代。在该上下文中,box1不指向页面属性,因为您的浏览器尚未指向successspage

为了解决这个问题,您需要使用内容名称(它将是string的实例),并在您处于正确的上下文中时将它们解析为页面的属性:

when:
page."$textBox" = value
submit()

then:"value is updated"
at SuccessPage
page."$textBox" == value

where:
textBox | value
'box1'  | val1
'box2'  | val2
'box3'  | val3
 类似资料:
  • 我正在用Spock、Groovy和Geb编写UI功能测试,实现页面对象模式。在我的事件流中,我从当前页面导航以获得结果,因此,我需要在测试中切换页面对象,但我成功地做到了 下面的测试用例:

  • 如何使用Spock以良好的方式(例如数据表)测试异常? 示例:具有一个方法,该方法可以抛出不同消息的异常,或者如果用户有效,则不抛出异常。 规范类本身: 变体1 这一个正在运行,但真正的意图被所有的when/then标签和反复调用弄得一团糟。 变式2 这个不工作,因为Spock在编译时提出了这个错误: 异常条件只允许在'然后'块 变式3 这个不工作,因为Spock在编译时提出了这个错误: 异常条件

  • 原因是:groovy.lang.MissingPropertyException:无法将tile1解析为Pages.LoginPage的内容或导航器上下文中的属性。tile1是您忘记导入的类吗? 它在loginPage中寻找tile1,而不是主页。

  • 我正在尝试使用Spock运行geb测试。我已经在groovy脚本中编写了所有内容,该脚本位于中,如下所示

  • 我刚开始使用geb和spock,但是当我只有代码的视图源时,我试图验证网页上显示的图像。任何建议都很感激!我根据以前编写的链接测试建模了这段代码,所以我肯定我遗漏了一些东西。我的页面文件的一个示例是: 我的规范页面的一个示例是:

  • 我受到了某种测试污染。当我单独运行失败测试时,它们会通过。当我把它们一起运行时,我会得到错误。这些错误与数据库无关。我不能理解错误。例如:页面: 我不明白,因为模块的内容不是必需的。另外,另一个测试的污染会导致这种情况吗?我的测试太多了,无法列出。 我唯一的想法是cookie被设置而不是由我的程序。有一堆cookie,它们具有奇怪的名称,如“ba743b”、“kvcd”、“kn_ai”等,并具有神