* Update JSONPathMatcher.cs to cover the string path selection to a child The .SelectToken method accept string path selection and JSONPath queries. The current code works only for the queries because the result is JObject. When the string path is selected the result is JValue and event with a valid result the code the code doesn't return valued result. https://www.newtonsoft.com/json/help/html/SelectToken.htm * Added unit tests * Addressed the comments * Addressed the comments * Update JSONPathMatcher.cs
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
📝 Blogs
💻 Project Info
| Project | |
| Chat | |
| Issues | |
| Quality | |
| Build Azure | |
| Quality | |
| Sonar Bugs | |
| Coverage |
📦 NuGet packages
| Official | Preview ℹ️ | |
|---|---|---|
| WireMock.Net | ||
| WireMock.Net.StandAlone | ||
| WireMock.Net.FluentAssertions | ||
| WireMock.Net.Matchers.CSharpCode | ||
| WireMock.Net.OpenApiParser | ||
| WireMock.Net.RestClient | ||
| WireMock.Net.xUnit | ||
| WireMock.Net.Testcontainers | ||
| 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
You can use Wiki : WireMock.Net.Testcontainers to build a WireMock.Net Docker container which can be used in 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