有没有办法通过 OPA-Testing 检查元素是否存在 而不是

比如测试成功,如果没有执行waitFor#success回调,会显示错误信息?

我有一个用例,其中是否显示按钮取决于非常重要的模型属性。我想通过 OPA 测试在每次部署时检查这一点。

button 属性绑定(bind)为可见,如果该属性为 false,则按钮不会出现在 DOM 中,因此无法检查其状态。

最佳答案

如果控件从未创建或已从 SAPUI5 的管理器中拆除或完全删除,例如使用 oMyControl.destroy() ,则以下工作:

theControlShouldNotBeThere: function(sControlId) {
  return this.waitFor({
    success: function() {
      var bExists = (Opa5.getJQuery()("#" + sControlId).length > 0);
      Opa5.assert.ok(!bExists, "Control doesn't exist");
    }
  });
}

请注意以下细节:
  • 仅将 waitForsuccess 回调一起使用,以确保 OPA 将此断言置于要执行的其他步骤队列的末尾。否则,代码将作为 OPA 测试的第一步执行。这是 described as a best practice in OPA5's Cookbook
  • Opa5.getJQuery method 返回 iFrame 中运行测试应用程序的 jQuery 对象。 $jQuery 将处理运行 OPA 环境的周围窗口的 jQuery 对象,该对象将无法识别所请求的控件。
  • .length is jQuery's preferred way of validating whether a selection is empty
  • 关于testing - 使用 OPA 在 SAPUI5 中进行负面测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46214196/

    10-13 05:44