为什么无法在 Where 块中访问任何 Geb 页面方法或模块方法
Why any Geb page method or module method can not be accessed in Where block
我有一个页面 class 并且有一些提取网页的方法。现在我想将这些方法调用到 Spock 的 Where 块中以作为数据提供者传递。但是当我调用该方法时,它会抛出一个错误,因为它没有找到它。但同样可以从 Where 块之外访问。为什么会这样?
例子
def "Validate all article has its id"(){
when:"I am at Overview page"
at OverviewPage
then:"I should the article id of all article"
getAllCountOf(articleInfo).size() == actualCount
where:
articleInfo |actualCount
TopArticleListInfo.ARTICLE_THUMBNAIL |filter.getCount()
}
在上面的代码中'filter.getCount()'不能从Where块中访问,但是在when或then块中可以访问相同的方法。
我想了解场景背后的逻辑 看起来,块无法静态找到此方法,需要创建一个对象来调用此方法。
当我尝试了erdi提供的解决方案时,也没有解决问题
when:"I am at Overview page"
at OverviewPage
then:"I should the article id of all article"
getAllCountOf(articleInfo).size() == page."$actualCount"
where:
articleInfo |actualCount
TopArticleListInfo.ARTICLE_THUMBNAIL |'getRowCount().size()'
此处将 getRowCount().size() 替换为“$actualCount”。但它仍然抛出错误
错误信息
getAllCountOf(articleInfo).size() == page."$actualCount"
| | | | |
| | 10 | groovy.lang.MissingPropertyException:无法将 getRowCount().size() 解析为 inca.sundashboard.pageobject.OverviewPage 的内容,或解析为导航器上下文中的 属性。 getRowCount().size() 是 class 你忘了导入吗?
|
我在测试中使用 Dynamic Method Names,这是一个小例子:
def "Validate all article has its id"(){
when: "I am at Overview page"
at OverviewPage
then: "I should the article id of all article"
getAllCountOf(articleInfo).size() == "$actualCountMethod"().getCount()
where:
articleInfo | actualCountMethod
TopArticleListInfo.ARTICLE_THUMBNAIL | filter
}
我有一个页面 class 并且有一些提取网页的方法。现在我想将这些方法调用到 Spock 的 Where 块中以作为数据提供者传递。但是当我调用该方法时,它会抛出一个错误,因为它没有找到它。但同样可以从 Where 块之外访问。为什么会这样?
例子
def "Validate all article has its id"(){
when:"I am at Overview page"
at OverviewPage
then:"I should the article id of all article"
getAllCountOf(articleInfo).size() == actualCount
where:
articleInfo |actualCount
TopArticleListInfo.ARTICLE_THUMBNAIL |filter.getCount()
}
在上面的代码中'filter.getCount()'不能从Where块中访问,但是在when或then块中可以访问相同的方法。
我想了解场景背后的逻辑 看起来,块无法静态找到此方法,需要创建一个对象来调用此方法。
当我尝试了erdi提供的解决方案时,也没有解决问题
when:"I am at Overview page"
at OverviewPage
then:"I should the article id of all article"
getAllCountOf(articleInfo).size() == page."$actualCount"
where:
articleInfo |actualCount
TopArticleListInfo.ARTICLE_THUMBNAIL |'getRowCount().size()'
此处将 getRowCount().size() 替换为“$actualCount”。但它仍然抛出错误
错误信息
getAllCountOf(articleInfo).size() == page."$actualCount" | | | | | | | 10 | groovy.lang.MissingPropertyException:无法将 getRowCount().size() 解析为 inca.sundashboard.pageobject.OverviewPage 的内容,或解析为导航器上下文中的 属性。 getRowCount().size() 是 class 你忘了导入吗? |
我在测试中使用 Dynamic Method Names,这是一个小例子:
def "Validate all article has its id"(){
when: "I am at Overview page"
at OverviewPage
then: "I should the article id of all article"
getAllCountOf(articleInfo).size() == "$actualCountMethod"().getCount()
where:
articleInfo | actualCountMethod
TopArticleListInfo.ARTICLE_THUMBNAIL | filter
}