grails - WithNewWindow() 在 Geb 中返回 MultipleCompilationErrorsException

标签 grails groovy closures functional-testing geb

我在我的 geb 功能测试中遇到奇怪的错误。

 org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Spec expression: 1: expecting '}', found 'assert' @ line 1, column 71.
    } ) { at(JobOfferDetailPage) assert des

我的测试看起来像这样。我单击一个链接,该链接会打开一个新窗口,其中包含工作机会的详细信息。比我想使用页面模式在新页面上声明一些文本。

测试:
withNewWindow( { quickShowOption.click() } ) { //TODO fix me
                    at(JobOfferDetailPage)
                    assert description.text() == 'some text'
                    assert requirements.text() == 'some text'
                    assert advatages.text() == 'some text.'
                    assert categories.text() == 'some text'
                    assert locality.text() == 'some text'
                }

页:
class JobOfferDetailPage extends Page {
    static at = {$('#contactLabel').text() == 'Contact'}

    static content = {
        description {$('#jobOfferDescription')}
        requirements {$('#jobOfferRequirements')}
        advatages {$('#jobOfferAdvantages')}
        jobOfferType {$('#jobOfferType')}
        categories {$('#categories')}
        locality {$('#locality')}
        startDate {$('#startDate')}
        requiredLanguages {$('#requiredLanguages')}
    }
}

断言条件后出现编译错误。如果我在断言文本中打错字,则测试通常会失败,但如果通过,则会因这个奇怪的错误而失败。

谢谢@Erdi。

我使用 spock、geb 版本“0.13.1”和 selenium 版本“2.51.0”。

最佳答案

如果有人相信this comment in one of Geb's own tests ,这不是我前段时间写的,这确实看起来像是 Spock 中的某种错误。有趣的是,我刚刚将该语句移到了一个期望 block 中,只要第二个闭包中的最后一条语句传递给 newWindow(),它就可以工作。评估为真。这让我认为这是旧版本的 Spock 和/或 Groovy 的问题。您使用的是上述工具的哪个版本?

一种可能的解决方法是将您的语句从 expect/then如我链接到的测试中所示,没有断言( givenwhen )。

关于grails - WithNewWindow() 在 Geb 中返回 MultipleCompilationErrorsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38802223/

相关文章:

maven - 由于依赖性问题,无法在Geb-Spock Grails测试中使用HtmlUnitDriver

Grails 中 View 的 JSON 输出

java - 在PDF的每一页附加水印图像

jenkins - Jenkins管道使Shell退出代码冒泡以使阶段失败

javascript - 通过获取父级的 "this"属性来推送具有删除自身的对象的数组

c# - 访问修改后的闭包警告是否对字符串变量有效?

grails - 使用 Groovy 分割 map

grails - 如何增加内存并修复 Grails 中的 "GC overhead limit exceeded"错误?

java - iptables Linux Java API 或 Groovy

delphi - 在OTL中使用匿名方法如何捕获变量?