1. 程式人生 > 實用技巧 >SAP UI5學習筆記之(十二)虛擬伺服器配置-Mock Server Configuration

SAP UI5學習筆記之(十二)虛擬伺服器配置-Mock Server Configuration

在開發和測試中,我們一般不會使用生產用的真實的遠端伺服器,因為這樣可能對真實伺服器增加負載,而且很不安全。

為了測試我們的程式我們可以使用SAPUI5提供的Mock Server來模擬一個伺服器。

Walkthrough中的Step27詳細講解了Mock Server的實現過程。

Walkthrough Step27連結:https://sapui5.netweaver.ondemand.com/sdk/#/topic/bae9d90d2e9c4206889368f04edab508

但是我用例子的程式碼測試發現畫面載入的資料不是Mock資料,而是Step26OData遠端service的資料。

我試著改了webapp/localService/mockserver.js這個檔案裡下面這句話:

rootUri: "https://services.odata.org/V2/Northwind/Northwind.svc/"

改成:

rootUri: "/destinations/northwind/V2/Northwind/Northwind.svc/"

測試發現數據正常顯示為Mock資料了。

原因分析

其實在Step27的後面描述中我們也能看到,mockserver.js的init方法中,

首先建立了一個MockServer例項,這個例項必須與真實server相同的URI,可以是絕對路徑,也可以是我們在manifest.json中配置的datasources裡的相對路徑。

然後模擬遠端訪問的響應時間給Mock Sever配置一個延遲。

最後使用MockSever的simulate方法使得請求的資料由我們的MockServer提供,而不是由真實服務提供。

由於Step26執行時出現同源策略違反導致資料載入不上,我們把manifest.json中的datasources裡的uri配置為相對路徑(SAP Cloud Platform Cockpit中的Destination),

所以在Step27時兩個URI不是完全一致的,導致Mock失敗。

解決方案

只需將這兩個URI改成一致就好了。

都是"https://services.odata.org/V2/Northwind/Northwind.svc/",

或者都是 "/destinations/northwind/V2/Northwind/Northwind.svc/"。