A C# .NET version based on mock4net which mimics functionality from the original Java based WireMock.
📚 Full documentation can now be found at wiremock.org
- HTTP response stubbing, matchable on URL/Path, headers, cookies and body content patterns
- Library can be used in unit tests and integration tests
- Runs as a standalone process, as windows service, as Azure/IIS or as docker
- Configurable via a fluent C# .NET API, JSON files and JSON over HTTP
- Record/playback of stubs (proxying)
- Per-request conditional proxying
- Stateful behaviour simulation
- Response templating / transformation using Handlebars and extensions
- Can be used locally or in CI/CD scenarios
- Can be used for Aspire Distributed Application testing
- mstack.nl : Generate C# Code from Mapping(s)
- mstack.nl : Chaos Engineering with Fault Injections
- mstack.nl : gRPC / ProtoBuf Support
- mstack.nl : Build and test your own .NET Aspire component
| Project | |
| Chat | |
| Issues | |
| Quality | |
| Build Azure | |
| Quality | |
| Sonar Bugs | |
| Coverage | |
| TIOBE | TIOBE Quality Indicator |
| Official | Preview ℹ️ | |
|---|---|---|
| WireMock.Net | ||
| WireMock.Net.Minimal 🔺 | ||
| WireMock.Net.StandAlone | ||
| WireMock.Net.Testcontainers | ||
| WireMock.Net.Aspire | ||
| WireMock.Net.AspNetCore.Middleware | ||
| WireMock.Net.AwesomeAssertions | ||
| WireMock.Net.FluentAssertions | ||
| WireMock.Net.xUnit | ||
| WireMock.Net.TUnit | ||
| WireMock.Net.Extensions.Routing | ||
| WireMock.Net.Matchers.CSharpCode | ||
| WireMock.Net.OpenApiParser | ||
| WireMock.Net.MimePart | ||
| WireMock.Net.GraphQL | ||
| WireMock.Net.ProtoBuf | ||
| WireMock.Net.RestClient | ||
| WireMock.Org.RestClient |
🔺 WireMock.Net.Minimal does not include WireMock.Net.MimePart, WireMock.Net.GraphQL and WireMock.Net.ProtoBuf.
A breaking change is introduced which is related to System.Linq.Dynamic.Core DynamicLinq (CVE).
- The
LinqMatcheris not allowed. - The Handlebars.Net.Helpers.DynamicLinq package is not included anymore.
Some breaking changes are introduced in this version:
By default, the internal Handlebars.Net File-helper is not allowed anymore because of potential security issues.
To still enable this feature, you need to set the AllowedCustomHandlebarHelpers property to File in the HandlebarsSettings property in WireMockServerSettings.
By default, the Handlebars.Net Environment-helper is not automatically allowed anymore because of potential security issues.
To still enable this feature, you need to add the Environment category to the AllowedHandlebarsHelpers list-property in the HandlebarsSettings property in WireMockServerSettings.
For the supported frameworks and build information, see this page.
A core feature of WireMock.Net is the ability to return predefined HTTP responses for requests matching criteria. See Wiki : Stubbing.
WireMock.Net support advanced request-matching logic, see Wiki : Request Matching.
The response which is returned WireMock.Net can be changed using templating. This is described here Wiki : Response Templating.
The WireMock admin API provides functionality to define the mappings via a http interface see Wiki : Admin API Reference.
WireMock.Net can be used in several ways:
You can use your favorite test framework and use WireMock within your tests, see Wiki : UnitTesting.
See Wiki : WireMock.Net.Testcontainers on how to build a WireMock.Net Docker container which can be used in Unit/Integration testing.
See Wiki : WireMock.Net.Aspire on how to use WireMock.Net as an Aspire Hosted application to do Unit/Integration testing.
It's simple to install WireMock.Net as (global) dotnet tool, see Wiki : dotnet tool.
This is quite straight forward to launch a mock server within a console application, see Wiki : Standalone Process.
You can also run WireMock.Net as a Windows Service, follow this WireMock-as-a-Windows-Service.
See this link WireMock-as-a-(Azure)-Web-App
There is also a Linux and Windows-Nano container available at hub.docker.com. For more details see also Docker.
More details on using HTTPS (SSL) can be found here Wiki : HTTPS
