我在我的本地PC上有一个Fiori应用程序,我看到它有一个带有模拟数据的一堆json文件的模型文件夹。我想在浏览器中使用此模拟数据运行此应用程序,但无法找到有关如何执行此操作的任何文档。 你知道sapui5期望在本地而不是从Odata服务器读取数据的参数是什么?
我没有使用SAP Web IDE(我知道它有一个选项"运行模拟数据")但是没有说它在幕后做了什么。
非常感谢你。 最好的问候,
答案 0 :(得分:2)
使用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方法创建一个MockServer实例,其URL与实际服务相同。配置参数rootURI中的URL现在将由我们的测试服务器而不是实际服务提供。接下来,我们为所有MockServer实例设置两个全局配置设置,告诉服务器自动响应并引入一秒的延迟来模仿典型的服务器响应时间。否则,我们必须手动调用MockServer上的响应方法来模拟调用。
为了模拟手动后端调用,我们可以简单地使用新创建的metadata.xml的路径调用MockServer实例上的simulate方法。这将从我们的本地文件系统中读取测试数据,并设置模仿真实服务的URL模式。
最后,我们在oMockServer上调用start。从这一点开始,每个对URL模式rootURI的请求都将由MockServer处理。如果您从index.html文件切换到浏览器中的testService.html文件,您现在可以看到测试数据再次从本地源显示,但延迟很短。
即使没有任何网络连接,此方法也非常适合本地测试。这样,您的开发不依赖于远程服务器的可用性,即运行测试。从这一点开始,您有两个不同的输入页面:一个用于真正的“连接”应用程序(index.html),另一个用于本地测试(testService.html)。“