处理重定向并隐含在断言中

时间:2014-11-07 10:31:24

标签: geb

我想测试的网站有一个登陆页面,要求您选择一种语言。您可以通过在网址中添加额外参数来跳过此问题。我希望使用GebSpock作为测试框架来测试此行为。

所以我的语言选择着陆页:

class LanguageSelectionPage extends Page {

    static url = "http://localhost:8080/registration/"

    static at = { $("form#languageForm") }
}

重定向到的第二页:

class InsertCardReaderPage extends Page {

    static at = { welcomeTitle1 }

    static content = {
        welcomeTitle1(wait: true, cache: false) { $("#eidWelcomeTitle1") }
        welcomeTitle2(wait: true, cache: false) { $("#eidWelcomeTitle2") }
    }
}

(我已从粘贴的代码中删除了一些方法)

所以这是我的测试:

given:
to LanguageSelectionPage, "09";

expect:
at InsertCardReaderPage;

“09”是网址中的一个额外参数,当此网址可用时,您将立即被服务器重定向(http重定向,因此页面确实会更改)到InsertCardReaderPage。现在,我的问题是to语句对at闭包执行隐式断言。这个失败是因为你已经从页面重定向了。

在这种情况下,是否有办法有条件地禁用此隐式断言?或者任何其他提案如何设置页面?我对Geb很新,在这种情况下无法找到任何似乎对我有帮助的文档。

1 个答案:

答案 0 :(得分:6)

使用via代替

given:
via LanguageSelectionPage, "09";

expect:
at InsertCardReaderPage;

Geb Manual