testing - Geb - 不起作用 attr。必需(常规测试)
问题描述
我创建测试(groovy,geb)。我有这样的事情:
class test extends Module {
static content = {
first{ $("input", id: "one") }
second(required: false) { $("input", id: "two") }
third(required: false) { $("input", id: "three") } }
def setNewValues(def newValues) {
first.value(newValues.first)
second.value(newValues.second)
third.value(newValues.third)
}
def assertingValues(def values) {
assert first.value() == values.first
assert second.value() == values.second
assert third.value() == values.third
}
}
它是不同组合模块的通用模块。并且在不同的情况下,模块只能有第一个输入,或者第一和第二,或者第一和第三。我可以为具有不同组合的模块重用我的 setNewValues 和 assertingValues 方法吗?
如果我尝试使用我的方法,我会得到“基于空导航器的 geb.module.Checkbox 模块不支持此操作”
解决方案
就我个人而言,如果模块包含不同的内容,我会将它们建模为不同的类 - 您尝试做的事情感觉太通用且过于聪明,但我可能没有完整的上下文来理解您为什么以这种方式接近它。但是,如果您坚持这样做,那么您可以使用if
语句包装可选内容的用法,即
if (second) {
second.value(newValues.second)
}
和
if (second) {
assert second.value() == values.second
}
推荐阅读
- apache-beam - 何时对按事件时间进行分组使用窗口化?
- azure - 在 APIM AZURE 上使用 RS256 创建 JWT
- loops - 如何在空手道中使用循环来创建 xml 请求正文?
- node.js - 每次我尝试将我的反应代码推送到 heroku 时,git push heroku main 都会失败
- opencv - 跟踪记住原始 ID 的对象
- .net - 在 .Net Core 中打开工作流 xaml 文件时出错
- python - 如何将与其计数器列值计数的列值外推到新的数据帧?
- python - Displot 整数之间的下降
- c - 如何将结构数组放置在 RAM 中的特定位置,例如 STM32F4 MCU 中的备份 RAM?
- apache-kafka - Prometheus - 计算百分比增加