本文へスキップ

WireMockサービス

wdio-wiremock-serviceはサードパーティパッケージです。詳細については、GitHub | npm を参照してください。

downloads

このサービスは、WebdriverIOでテストを実行する際に、WireMockをシームレスに実行するのに役立ちます。よく知られているMavenリポジトリを使用してWireMockのjarファイルをダウンロードし、自動的にインストール、起動、停止します。ヘルプとサポートについては、Gitterのコミュニティに参加して最新情報を入手してください。

インストール

npm i -D wdio-wiremock-service

WebdriverIOのインストール方法はこちらをご覧ください。

使用方法

ルートディレクトリ(デフォルトは./mock)には、フィクスチャとモックに使用される__filesmappingsという2つのサブディレクトリがあります。

詳細については、WireMockの公式ドキュメントをご覧ください。

設定

wdioテストランナーでこのサービスを使用するには、サービス配列に追加する必要があります。

// wdio.conf.js
export.config = {
// ...
services: ['wiremock'],
// ...
};

webdriverioスタンドアロンを使用する場合は、サービスを追加し、onPrepareonCompleteフックを手動でトリガーする必要があります。例はこちらにあります(この例ではJestを使用しています)。

オプション

次のオプションをサービスに追加できます。

ポート

WireMockを実行するポート。

型: 数値

デフォルト: 8080

// wdio.conf.js
export const config = {
// ...
services: [['wiremock', { port: 8181 }]],
// ...
};

rootDir

WireMockがファイルを探すパス。

型: 文字列

デフォルト: ./mock

// wdio.conf.js
export const config = {
// ...
services: [['wiremock', { rootDir: './mock' }]],
// ...
};

バージョン

ダウンロードして使用するWireMockのバージョン。

型: 文字列

デフォルト: 3.3.1

// wdio.conf.js
export const config = {
// ...
services: [['wiremock', { version: '2.25.1' }]],
// ...
};

skipWiremockInstall

WireMockのダウンロードをスキップするようにサービスに指示します。

型: ブール値

デフォルト: false

// wdio.conf.js
export const config = {
// ...
services: [['wiremock', { skipWiremockInstall: true }]],
// ...
};

binPath

ローカルのWiremockバイナリへのカスタムパス(多くの場合、skipWiremockInstallと組み合わせて使用されます)。

型: 文字列

デフォルト: './wiremock-standalone-3.0.0.jar'(サービスからの相対パス)

// wdio.conf.js
export const config = {
// ...
services: [['wiremock', { binPath: './my-custom/example-path/wiremock-standalone-3.0.0.jar' }]],
// ...
};

サイレント

WireMockの出力(サービス自体の追加ログを含む)のサイレントモード。

型: ブール値

デフォルト: false

// wdio.conf.js
export const config = {
// ...
services: [['wiremock', { silent: true }]],
// ...
};

mavenBaseUrl

MavenのベースダウンロードURL。

型: 文字列

デフォルト: https://repo1.maven.org/maven2

// wdio.conf.js
export const config = {
// ...
services: [['wiremock', { mavenBaseUrl: 'https://repo1.maven.org/maven2' }]],
// ...
};

引数

WireMockの設定に使用できるすべてのサポートされている引数を渡すことができるリスト。

注: (portrootDirstdiomavenBaseUrl)オプションはここで渡せません。無視されます。

型: 配列

// wdio.conf.js
export const config = {
// ...
services: [
[
'wiremock',
{
args: ['--verbose', '--match-headers'],
},
],
],
// ...
};

テストの作成

最初のテストの作成はとても簡単です。

WDIOテストランナーの使用

import fetch from 'node-fetch'; // you can use any HTTP client you like
import { equal } from 'node:assert'; // you can use any assertion library you like

describe('example', () => {
it(`should assert the mock data`, async () => {
const body = await fetch('https://:8080/api/mytest');
equal(body.text(), 'Hello world!');
});
});

WebdriverIOスタンドアロンの使用

import fetch from 'node-fetch'; // you can use any HTTP client you like
import { equal } from 'node:assert'; // you can use any assertion library you like
import { remote } from 'webdriverio';
import { launcher } from 'wdio-wiremock-service';

const WDIO_OPTIONS = {
capabilities: {
browserName: 'chrome',
},
};

describe('example', () => {
let wiremockLauncher;
let client;

beforeAll(async () => {
wiremockLauncher = new launcher(); // create instance of the service
await wiremockLauncher.onPrepare(WDIO_OPTIONS); // run the onPrepare hook
client = await remote(WDIO_OPTIONS);
});

afterAll(async () => {
await client.deleteSession();
await wiremockLauncher.onComplete(); // run the onComplete hook
});

test('should showoff a mocked api response', async () => {
const body = await fetch('https://:8080/api/mytest');
equal(body.text(), 'Hello world!');
});
});

WebdriverIOの詳細については、ホームページをご覧ください。

ようこそ!お手伝いできることはありますか?

WebdriverIO AI Copilot