我在本地 PC 中有一个 Fiori 应用程序,我看到它有一个模型文件夹,其中包含一堆带有模拟数据的 json 文件。我想用这个模拟数据在浏览器中运行这个应用程序,但找不到任何关于如何做到这一点的文档。您知道 sapui5 期望在本地而不是从 Odata 服务器读取数据的参数是什么吗?
我没有使用 SAP Web IDE(我知道它有一个“使用模拟数据运行”选项),但没有人说它在幕后做了什么。
非常感谢。此致,
我在本地 PC 中有一个 Fiori 应用程序,我看到它有一个模型文件夹,其中包含一堆带有模拟数据的 json 文件。我想用这个模拟数据在浏览器中运行这个应用程序,但找不到任何关于如何做到这一点的文档。您知道 sapui5 期望在本地而不是从 Odata 服务器读取数据的参数是什么吗?
我没有使用 SAP Web IDE(我知道它有一个“使用模拟数据运行”选项),但没有人说它在幕后做了什么。
非常感谢。此致,
使用 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)。”