Hoppa till huvudinnehåll

WireMock Service

wdio-wiremock-service är ett tredjepartspaket, för mer information se GitHub | npm

downloads

Denna tjänst hjälper dig att köra WireMock sömlöst när du kör tester med WebdriverIO. Den använder det välkända Maven repository för att ladda ner WireMock jar-filen åt dig som sedan automatiskt installeras, startas och stoppas. Håll dig uppdaterad genom att gå med i gemenskapen på Gitter för hjälp och support.

Installation

npm i -D wdio-wiremock-service

Instruktioner om hur man installerar WebdriverIO finns här.

Användning

I rootkatalogen (standard ./mock) hittar du två underkataloger, __files och mappings som används för dina fixtures och mocks.

För mer information, kolla in WireMock's officiella dokumentation.

Konfiguration

För att använda tjänsten med wdio testrunner behöver du lägga till den i din service-array:

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

När du använder webdriverio standalone behöver du lägga till tjänsten och manuellt trigga onPrepare och onComplete hooks. Ett exempel finns här (exemplet använder Jest):

Alternativ

Följande alternativ kan läggas till tjänsten.

port

Port där WireMock ska köras.

Typ: Number

Standard: 8080

Exempel:

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

rootDir

Sökväg där WireMock ska leta efter filer.

Typ: String

Standard: ./mock

Exempel:

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

version

Version av WireMock som ska laddas ner och användas.

Typ: String

Standard: 3.3.1

Exempel:

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

skipWiremockInstall

Tala om för tjänsten att hoppa över nedladdningen av WireMock.

Typ: Boolean

Standard: false

Exempel:

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

binPath

Anpassad sökväg till en lokal Wiremock-binär (används ofta i kombination med skipWiremockInstall).

Typ: String

Standard: './wiremock-standalone-3.0.0.jar' (relativt från tjänsten)

Exempel:

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

silent

Tyst läge för loggning av WireMock's output (inklusive ytterligare loggning från själva tjänsten).

Typ: Boolean

Standard: false

Exempel:

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

mavenBaseUrl

Bas-URL för nedladdning från Maven.

Typ: String

Standard: https://repo1.maven.org/maven2

Exempel:

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

args

Lista där du kan skicka alla stödda argument för att konfigurera WireMock

Obs: du kan inte skicka alternativen (port, rootDir, stdio, mavenBaseUrl) här eftersom de kommer att ignoreras.

Typ: Array

Exempel:

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

Skriva tester

Att skriva ditt första test är verkligen enkelt:

Använda WDIO testrunner

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('http://localhost:8080/api/mytest');
equal(body.text(), 'Hello world!');
});
});

Använda WebdriverIO Standalone

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('http://localhost:8080/api/mytest');
equal(body.text(), 'Hello world!');
});
});

För mer information om WebdriverIO se hemsidan.

Welcome! How can I help?

WebdriverIO AI Copilot