gpt4 book ai didi

unit-testing - 如何为 SAPUI5/OPENUI5 应用程序设置测试用例?

转载 作者:行者123 更新时间:2023-12-02 03:24:13 24 4
gpt4 key购买 nike

我尝试为给定的 UI5 应用程序原子化我的测试。因此,我在 WebContent 下创建了一个名为 test-resources 的文件夹。在该文件夹中,我放置了两个文件用于首次测试。

第一个文件:experimental.qunit.html,其中包含一些第一个工作单元测试代码。

第二个文件:experimental.opa.html,其中包含来自文档的示例代码。

测试部分如下所示:

opaTest("Should find a Button with a matching property", function(Given, When, Then) {
// Act
Given.iStartMyAppInAFrame("index.html");

When.waitFor({
viewName : "view.master.Master",
controlType : "sap.m.Button",
matchers : new sap.ui.test.matchers.PropertyStrictEquals({
name : "icon",
value : "sap-icon://show"
}),
success : function (aButtons) {
debugger;
ok(true, "Found the button: " + aButtons[0]);
},
errorMessage : "No button with property icon equal to sap-icon://show"
});
Then.waitFor({
// not implemented
});
Then.iTeardownMyAppFrame();
});

首先我假设我也可以搜索带有图标属性的按钮。第二个假设是,viewName 是 View 文件的名称和文件夹?在应用中, View 是拆分应用的主视图。

我这样开始测试:* 在 Eclipse 中标记项目并选择运行为“Web App Preview”*当然比我看到我的普通应用程序* 我用 test-resoruces/experimental.opa.html 替换了 index.html 部分* 现在我可以看到测试并且我的应用显示在 iframe 中

但是:1. 按钮选择不起作用,有人知道哪里出了问题吗?2. 如果我更改 html 代码,我必须一直重新启动“Web App Preview”,重新加载似乎不起作用。更新测试代码后是否有“更好”的方式来运行测试?

应用程序本身被定义为一个组件,主视图是一个 SplitApp xml 文件,其中不包含以下内容:

<mvc:View
xmlns:mvc="sap.ui.core.mvc"
displayBlock="true"
xmlns="sap.m">
<SplitApp id="idAppControl" />
</mvc:View>

与此同时,我发现并修复了问题。我的 PropertyStrictEquals 语法错误。

重启问题(Web App Preview)依然存在。

我还发现了一个有用的例子: https://openui5beta.hana.ondemand.com/test-resources/sap/m/demokit/cart/test/BuyProductJourney.qunit.html

这里提到: http://scn.sap.com/community/developer-center/front-end/blog/2014/10/16/javascript-based-integration-tests-for-sapui5-apps-with-opa

最佳答案

(查看 developper guide 中的测试教程)

首先,在您的示例中,您混合了抽象级别。直接在您的jurney(测试步骤的顺序)中不应有任何代码,例如waitFor(),因为那是特定于页面的代码。因此,您应该创建页面,在您实际安排、操作和断言发生的地方。在旅程中,您只调用它们。像这样( source ):

        opaTest("Should see the post page when a user clicks on an entry of the list", function (Given, When, Then) {
// Arrangements
Given.iStartMyApp();

//Actions
When.onTheWorklistPage.iPressOnTheItemWithTheID("PostID_15");

// Assertions
Then.onThePostPage.theTitleShouldDisplayTheName("Jeans");
});

那些对象 onTheWorklistPageonThePostPage 是您实际的测试步骤,您可以在其中搜索对象并触发点击或检查显示的文本,您可以像这样创建它们:

    Opa5.createPageObjects({
onTheWorklistPage: {
baseClass: Common,
actions: {...},
assertions: {...}
}
})

现在,在这些操作和断言中,您将 waitFor() 用于获取元素并对它们执行某些操作。 API 中描述了此功能

PS:你的问题很散漫,我不确定我是否回答了你的问题,如果没有,请评论。

关于unit-testing - 如何为 SAPUI5/OPENUI5 应用程序设置测试用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31298776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com