SAPUI5 OPA5如何触发选择事件

时间:2016-09-22 12:28:51

标签: integration-testing sapui5

测试sap.m.Select是否包含名为xyz的项目的典型操作,然后选择它。

success: function(oSelect) {
    var oItems = oSelect.getItems();
    $.each(oItems, function(i,v) {
        if(oItems[i].getText() === "TestItemNameILikeToSelect") {
            oTestOpa5TestItem = oItems[i];
        }
    });
    if(oTestOpa5TestItem !== null) {
        oSelect.setSelectedKey(oTestOpa5TestItem.getKey());
        oTestOpa5TestItem.$().trigger("tap");
    }
},

当我开始测试运行时,它会从列表中正确选择正确的项目并在浏览器中明显设置它,但它不会触发后面的附加事件(例如,更改=" onListItemChanged" )。 我的应用程序运行正常,但我找不到为它创建工作测试的方法。

提前致谢

1 个答案:

答案 0 :(得分:1)

OPA5有一个'Action'接口和两个默认实现,例如'EnterText'和'Press'。建议的用法是在action选项上定义waitFor()块,如下所示:

When.waitFor({
    id: "myButton",
       actions: new Press()
    });

你使用的是'老方法',但它有一些缺点:

  • success阻止与XHR请求不同步,但action是。
  • 向控件发送click / tap事件可能需要选择一些内部元素。想象一下点击导航容器 - 您可以实际点击几个地方。操作处理这些细节并定义您可以依赖的标准行为。
  • 最好将选择逻辑封装在matchers块中,甚至将其抽象为自定义匹配器。这样,您的success块将更清晰,您可以在测试中的几个位置重复使用匹配器。

OPA5 Actions