# README
WireMock Module for Testcontainers Go
This module allows provisioning the WireMock API mock server as a standalone container within your unit tests,
based on the official WireMock Docker images (2.35.0-1
or above) or compatible custom images.
You can learn more about WireMock and Golang on this WireMock solutions page.
Supported features
The following features are now explicitly included in the module's API:
- Passing API Mapping and Resource files
- Sending HTTP requests to the mocked container
- Embedded Go WireMock client for interacting with the WireMock container REST API
More features will be added over time.
Quick Start
See the Quick Start Guide. Just a teaser of how it feels at the real speed!
Requirements
- Golang version 1.17 or above, so all modern Golang projects should be compatible with it.
- The module supports the official WireMock Docker images 2.35.0-1 or above.
- Custom images are supported too as long as they follow the same CLI and API structure.
Usage
import (
"context"
. "github.com/wiremock/wiremock-testcontainers-go"
"testing"
)
func TestWireMock(t *testing.T) {
// Create Container
ctx := context.Background()
container, err := RunContainerAndStopOnCleanup(ctx,
WithMappingFile("hello", "hello-world.json"),
)
if err != nil {
t.Fatal(err)
}
// Send the HTTP GET request to the mocked API
statusCode, out, err := SendHttpGet(container, "/hello", nil)
if err != nil {
t.Fatal(err, "Failed to get a response")
}
// Verify the response
if statusCode != 200 {
t.Fatalf("expected HTTP-200 but got %d", statusCode)
}
if string(out) != "Hello, world!" {
t.Fatalf("expected 'Hello, world!' but got %v", string(out))
}
}
Examples
License
The module is licensed under Apache License v.2
References
# Functions
No description provided by the author
RunContainer creates an instance of the WireMockContainer type.
Creates an instance of the WireMockContainer type that is automatically terminated upon test completion.
Creates a default instance of the WireMockContainer type that is automatically terminated upon test completion.
SendHttpDelete sends Http DELETE request to the container passed as an argument.
SendHttpGet sends Http GET request to the container passed as an argument.
SendHttpPatch sends Http PATCH request to the container passed as an argument.
SendHttpPost sends Http POST request to the container passed as an argument.
SendHttpPut sends Http PUT request to the container passed as an argument.
No description provided by the author
No description provided by the author
No description provided by the author
# Structs
No description provided by the author
No description provided by the author