- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试为给定的 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
最佳答案
(查看 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");
});
那些对象 onTheWorklistPage
和 onThePostPage
是您实际的测试步骤,您可以在其中搜索对象并触发点击或检查显示的文本,您可以像这样创建它们:
Opa5.createPageObjects({
onTheWorklistPage: {
baseClass: Common,
actions: {...},
assertions: {...}
}
})
现在,在这些操作和断言中,您将 waitFor()
用于获取元素并对它们执行某些操作。 API 中描述了此功能
PS:你的问题很散漫,我不确定我是否回答了你的问题,如果没有,请评论。
关于unit-testing - 如何为 SAPUI5/OPENUI5 应用程序设置测试用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31298776/
我在 Visual Studio 代码 1.2/1.3 中有一个 openui 项目设置,所有必需的库(openui 运行时文件)都在/resources 目录中,并且采用 .js 格式。我没有从这些
我是一名优秀的程序员,十分优秀!