* Upgrade to Handlebars.Net.Helpers 2.4.9 * uses: actions/setup-dotnet@v4
WireMock.Net
A C# .NET version based on mock4net which mimics the functionality from the JAVA based WireMock.
For more info, see also this WIKI page: What is WireMock.Net.
⭐ Key Features
- 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
📝 Blogs
- 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 Info
| Project | |
| Chat | |
| Issues | |
| Quality | |
| Build Azure | |
| Quality | |
| Sonar Bugs | |
| Coverage | |
| TIOBE | TIOBE Quality Indicator |
📦 NuGet packages
| Official | Preview ℹ️ | |
|---|---|---|
| WireMock.Net | ||
| WireMock.Net.StandAlone | ||
| WireMock.Net.Testcontainers | ||
| WireMock.Net.Aspire | ||
| WireMock.Net.AspNetCore.Middleware | ||
| WireMock.Net.FluentAssertions | ||
| WireMock.Net.xUnit | ||
| WireMock.Net.TUnit | ||
| WireMock.Net.Matchers.CSharpCode | ||
| WireMock.Net.OpenApiParser | ||
| WireMock.Net.RestClient | ||
| WireMock.Org.RestClient |
📝 Development
For the supported frameworks and build information, see this page.
⭐ Stubbing
A core feature of WireMock.Net is the ability to return predefined HTTP responses for requests matching criteria. See Wiki : Stubbing.
⭐ Request Matching
WireMock.Net support advanced request-matching logic, see Wiki : Request Matching.
⭐ Response Templating
The response which is returned WireMock.Net can be changed using templating. This is described here Wiki : Response Templating.
⭐ Admin API Reference
The WireMock admin API provides functionality to define the mappings via a http interface see Wiki : Admin API Reference.
⭐ Using
WireMock.Net can be used in several ways:
UnitTesting
You can use your favorite test framework and use WireMock within your tests, see Wiki : UnitTesting.
Unit/Integration Testing using Testcontainers.DotNet
See Wiki : WireMock.Net.Testcontainers on how to build a WireMock.Net Docker container which can be used in Unit/Integration testing.
Unit/Integration Testing using an an Aspire Distributed Application
See Wiki : WireMock.Net.Aspire on how to use WireMock.Net as an Aspire Hosted application to do Unit/Integration testing.
As a dotnet tool
It's simple to install WireMock.Net as (global) dotnet tool, see Wiki : dotnet tool.
As standalone process / console application
This is quite straight forward to launch a mock server within a console application, see Wiki : Standalone Process.
As a Windows Service
You can also run WireMock.Net as a Windows Service, follow this WireMock-as-a-Windows-Service.
As a Web Job in Azure or application in IIS
See this link WireMock-as-a-(Azure)-Web-App
In a docker container
There is also a Linux and Windows-Nano container available at hub.docker.com. For more details see also Docker.
HTTPS / SSL
More details on using HTTPS (SSL) can be found here Wiki : HTTPS