【问题标题】:How to run SAPUI5 Fiori application with mock data如何使用模拟数据运行 SAPUI5 Fiori 应用程序
【发布时间】:2015-06-04 13:31:54
【问题描述】:

我的本​​地 PC 中有一个 Fiori 应用程序,我看到它有一个模型文件夹,其中包含一堆带有模拟数据的 json 文件。我想在浏览器中使用此模拟数据运行此应用程序,但找不到任何有关如何执行此操作的文档。 你知道 sapui5 期望在本地而不是从 Odata 服务器读取数据的参数是什么吗?

我没有使用 SAP Web IDE(我知道它有一个“使用模拟数据运行”选项),但没有人说它在幕后做了什么。

非常感谢。 最好的问候,

【问题讨论】:

    标签: unit-testing sapui5 sap-fiori


    【解决方案1】:

    使用 SAP Web IDE,MockServer(当您选择“使用模拟数据运行”选项时注入)会自动启动。但是您也可以在您的应用程序中手动执行此操作,我们甚至建议您这样做也可以在您的应用程序在模拟模式下运行时运行自动化测试。

    您可以查看全新的 SAPUI5 演练(步骤 27)以获取有关如何从应用程序内部启动 MockServer 的更多详细信息: https://github.com/SAP/openui5/tree/master/src/sap.m/test/sap/m/demokit/tutorial/walkthrough/27

    演练的文档将仅与 OpenUI5 1.30 版一起发布,但我在此处复制了相关部分,希望对您有所帮助!迈克尔

    起始页的文档 (testService.html): “我们修改了 index.html 文件的副本并添加了一个新的页面标题,以将其与生产起始页区分开来。由于我们显然希望将测试和生产编码分开,因此我们添加了第二个命名空间 sap.ui.demo.wt。 test 指向 test 文件夹,只在 testService.html 文件中使用。

    此外,我们将组件的初始化切换为 sap.ui.require 语法,因为我们现在确实加载了启动应用程序所需的更多附加文件。第一个依赖项是一个名为 server.js 的文件,它将位于 test/service 文件夹中。我们还将 Shell 和 ComponentContainer 引用替换为 require 语句提供的依赖项。

    我们刚刚加载并即将实现的新工件是我们的本地测试服务器,它在我们实际定义组件之前立即使用 init 方法调用。这样,当使用 testService.html 文件启动应用程序时,我们可以捕获所有将发送到“真实”服务的请求并由我们的测试服务器在本地处理它。”

    模拟服务器脚本的文档: “现在我们已经使用 metadata.xml 文件扩展了我们的测试数据,我们可以编写代码来初始化将模拟请求而不是真实服务器的服务器。

    我们将 MockServer 模块作为依赖项加载,并创建一个帮助对象,该对象定义了一个 init 方法来启动服务器。该方法在上面testService.html文件中的组件初始化之前调用。

    init 方法创建一个与真实服务具有相同 URL 的 MockServer 实例。配置参数 rootURI 中的 URL 现在将由我们的测试服务器提供服务,而不是真正的服务。接下来,我们为所有 MockServer 实例设置两个全局配置设置,告诉服务器自动响应并引入一秒的延迟以模仿典型的服务器响应时间。否则,我们将不得不手动调用 MockServer 上的响应方法来模拟调用。

    为了模拟手动后端调用,我们可以简单地使用新创建的 metadata.xml 的路径调用 MockServer 实例上的模拟方法。这将从我们的本地文件系统读取测试数据并设置模仿真实服务的 URL 模式。

    最后,我们在 oMockServer 上调用 start。从这一点开始,对 URL 模式 rootURI 的每个请求都将由 MockServer 处理。如果您在浏览器中从 index.html 文件切换到 testService.html 文件,您现在可以看到再次从本地源显示测试数据,但有短暂的延迟。

    这种方法非常适合本地测试,即使没有任何网络连接。这样,您的开发不依赖于远程服务器的可用性,即运行您的测试。从这一点开始,您有两个不同的入口页面:一个用于真正的“连接”应用程序 (index.html),另一个用于本地测试 (testService.html)。”

    【讨论】:

    • MockServer 确实很有用。感谢您的答复。我已经在看它了,只是希望有一种更简单的方法可以在没有网关的情况下简单地运行 Fiori 应用程序。一些演示具有 responderOn 参数。也许在下一个版本中;)谢谢
    • @jumpifzero - 有没有办法为 OData 配置 manifest.json 文件,所以当没有网络连接时,它会落到 mockserver 上,否则是真正的 OData swervice?
    • @user557657 我不知道!您需要明确地实现该逻辑。
    猜你喜欢
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-27
    • 2017-09-10
    • 2013-04-18
    • 2015-10-28
    • 1970-01-01
    相关资源
    最近更新 更多