WireMock 作为服务
·阅读 3 分钟
我们很高兴地宣布,我们现在为 WebdriverIO 提供了一个名为 wdio-wiremock-service
的新的模拟服务。
它能做什么?
此服务可帮助您在使用WebdriverIO运行测试时无缝运行 WireMock。它使用众所周知的Maven 存储库为您下载 WireMock jar 文件,然后自动安装、启动和停止。加入我们社区的Discord 支持服务器,随时了解最新信息,并获取帮助和支持。
您可以使用此服务执行一些操作
- 自动运行WireMock 以及 WebdriverIO 测试运行器
- 支持使用模拟和夹具文件
- 使用各种策略匹配请求 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 服务器,随时了解最新信息,并获取支持和解答问题。
期待在那里见到你!