在运行时访问内容块中的闭包属性名称

时间:2014-10-31 18:45:53

标签: geb

我想在运行测试套件之前评估我的内容块,但是闭包的属性名称已经是字节码。我正在寻找最干净的解决方案(与手动解析源相比)。

已经尝试过的解决方案概述in this post(我仍然会做一些RegEx /解析),但只能通过脚本执行引擎使其工作。它在IDE和GroovyConsole中失败了。我没有在项目代码中嵌入Groovy脚本,而是想尝试使用Geb的本机类。

建立在Geb的PageContentSupport类扩展Geb Navigators here的建议的基础上,它的contentTemplates包含了我所需要的LinkedHashMap吗?如果是,有人会提供指导吗?如果没有,有什么建议吗?

1 个答案:

答案 0 :(得分:0)

目前无法获取给定页面/模块的所有内容元素。您可以在Geb's bug tracker中为此创建一个问题,但请记住,Geb可以提供的所有内容都是内容元素名称列表或从这些名称到创建这些元素的闭包的映射。

拥有该信息不是您问题的通用解决方案,因为内容元素可能会采用参数,并且在某些情况下,只有在执行其他一些操作后,您的内容元素才会在页面上可用(例如,您有单击按钮以显示使用ajax检索其内容的页面的一部分。所以我担心简单地遍历所有元素并检查它们是否不会丢失任何错误都不会削减它。

我仍然在努力查看在运行套件之前“评估”所有内容元素会给你带来什么。您是否在验证您的内容元素是否仍然可以比运行整个套件更快地获得反馈?我很确定您无法完全自动检测不再起作用的内容定义。在我看来,这将是更多的努力而不是它的价值。