WireMock 作為服務
·閱讀時間 3 分鐘
我們很高興宣佈,我們現在為 WebdriverIO 提供一個新的模擬服務,稱為 wdio-wiremock-service
。
它能做什麼?
此服務可協助您在使用 WebdriverIO 執行測試時,無縫執行 WireMock。它使用著名的 Maven 儲存庫來為您下載 WireMock jar,然後自動安裝、啟動和停止。若要保持最新資訊,請加入我們的社群,前往我們的社群 Discord 支援伺服器以取得協助和支援。
您可以使用此服務執行的一些操作
- 與 WebdriverIO 測試執行器一起自動執行 WireMock
- 支援使用模擬和固定裝置檔案
- 使用各種策略來比對請求 URL、方法、標頭 Cookie 和主體。一流的 JSON 和 XML 支援。
- 使用所有可用的選項設定 WireMock
安裝
npm install wdio-wiremock-service --save-dev
關於如何安裝 WebdriverIO
的說明,請參閱這裡。
設定
為了使用此服務,您需要將其新增至您的服務陣列
wdio.conf.js
exports.config
// ...
services: ['wiremock'],
// ...
};
還有許多其他選項可用於設定,如需完整概述,請前往這裡。
建立模擬和固定裝置
該服務會建立一個目錄(預設為 ./mock
),其中有兩個子目錄 (mappings
和 __files
)。它將使用 mappings
目錄來尋找模擬檔案,並將使用 __files
目錄來尋找固定裝置檔案。
了解這一點後,建立固定裝置就像在 __files
目錄中建立檔案一樣簡單
./mock/__files/hello-world.json
Hello world
而建立您的第一個模擬就像在 mappings
目錄中建立一個檔案一樣簡單
了解這一點後,建立固定裝置就像在 __files
目錄中建立檔案一樣簡單
./mock/mappings/my-test.json
{
"request": {
"method": "GET",
"url": "/api/mytest"
},
"response": {
"status": 200,
"bodyFileName": "hello-world.json"
}
}
撰寫測試
撰寫您的第一個測試非常簡單
./test/specs/mytest.js
const fetch = require('node-fetch');
const assert = require('assert');
describe('My test', () => {
it('should assert the mock data', () => {
browser.call(async () => {
await fetch('https://127.0.0.1:8080/api/mytest')
.then((res) => res.text())
.then((body) => {
// assert that the request body returns the expected value
assert.equal(body, 'More content');
});
});
});
});
支援
若要保持最新資訊,請加入我們的社群,前往我們的社群 Discord 伺服器,以加入其他使用者並取得支援和解答問題。
在那裡見!