Skip to content

WireMock.Net is a flexible product for stubbing and mocking web HTTP responses using advanced request matching and response templating. Based on WireMock Java, but extended with more functionality.Full documentation can be found at https://wiremock.org/dotnet/.

License

Notifications You must be signed in to change notification settings

wiremock/WireMock.Net

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Project Icon WireMock.Net

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


⭐ 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

πŸ’» Project Info

Project Β 
Β Β Chat Slack Gitter
Β Β Issues GitHub issues
Quality Β 
Β Β Build Azure Build Status Azure
Β Β Quality Sonar Quality Gate CodeFactor
Β Β Sonar Bugs Sonar Bugs Sonar Code Smells
Β Β Coverage Sonar Coverage codecov
Β Β TIOBE TIOBE Quality Indicator

πŸ“¦ NuGet packages

Official Preview ℹ️
Β Β WireMock.Net NuGet Badge WireMock.Net MyGet Badge WireMock.Net
Β Β WireMock.Net.Minimal πŸ”Ί NuGet Badge WireMock.Net.Minimal MyGet Badge WireMock.Net
Β Β WireMock.Net.StandAlone NuGet Badge WireMock.Net MyGet Badge WireMock.Net.StandAlone
Β Β WireMock.Net.Testcontainers NuGet Badge WireMock.Net.Testcontainers MyGet Badge WireMock.Net.Testcontainers
Β Β WireMock.Net.Aspire NuGet Badge WireMock.Net.Aspire MyGet Badge WireMock.Net.Aspire
Β Β WireMock.Net.AspNetCore.Middleware NuGet Badge WireMock.Net.AspNetCore.Middleware MyGet Badge WireMock.Net.AspNetCore.Middleware
Β Β WireMock.Net.AwesomeAssertions NuGet Badge WireMock.Net.AwesomeAssertions MyGet Badge WireMock.Net.AwesomeAssertions
Β Β WireMock.Net.FluentAssertions NuGet Badge WireMock.Net.FluentAssertions MyGet Badge WireMock.Net.FluentAssertions
Β Β WireMock.Net.xUnit NuGet Badge WireMock.Net.xUnit MyGet Badge WireMock.Net.xUnit
Β Β WireMock.Net.TUnit NuGet Badge WireMock.Net.TUnit MyGet Badge WireMock.Net.TUnit
Β Β WireMock.Net.Extensions.Routing NuGet Badge WireMock.Net.Extensions.Routing MyGet Badge WireMock.Net.Extensions.Routing
Β Β WireMock.Net.Matchers.CSharpCode NuGet Badge WireMock.Net.Matchers.CSharpCode MyGet Badge WireMock.Net.Matchers.CSharpCode
Β Β WireMock.Net.OpenApiParser NuGet Badge WireMock.Net.OpenApiParser MyGet Badge WireMock.Net.OpenApiParser
Β Β WireMock.Net.MimePart NuGet Badge WireMock.Net.MimePart MyGet Badge WireMock.Net.MimePart
Β Β WireMock.Net.GraphQL NuGet Badge WireMock.Net.GraphQL MyGet Badge WireMock.Net.GraphQL
Β Β WireMock.Net.ProtoBuf NuGet Badge WireMock.Net.ProtoBuf MyGet Badge WireMock.Net.ProtoBuf
Β Β WireMock.Net.RestClient NuGet Badge WireMock.Net.RestClient MyGet Badge WireMock.Net.RestClient
Β Β WireMock.Org.RestClient NuGet Badge WireMock.Org.RestClient MyGet Badge WireMock.Org.RestClient

πŸ”Ί WireMock.Net.Minimal does not include WireMock.Net.MimePart, WireMock.Net.GraphQL and WireMock.Net.ProtoBuf.


❗ Breaking changes

1.7.0

A breaking change is introduced which is related to System.Linq.Dynamic.Core DynamicLinq (CVE).

1.8.0

Some breaking changes are introduced in this version:

Handlebars.Net File-helper

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.

Handlebars.Net Environment-helper

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.


πŸ“ 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 Stubbing.

⭐ Request Matching

WireMock.Net support advanced request-matching logic, see Request Matching.

⭐ Response Templating

The response which is returned WireMock.Net can be changed using templating. This is described here Response Templating.

⭐ Admin API Reference

The WireMock admin API provides functionality to define the mappings via a http interface see 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 UnitTesting.

Unit/Integration Testing using Testcontainers.DotNet

See 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 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 dotnet tool.

As standalone process / console application

This is quite straight forward to launch a mock server within a console application, see Standalone Process.

As a Windows Service

You can also run WireMock.Net as a Windows Service, follow this 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 HTTPS

πŸ“š Documentation

For more info, see also this documentation page: What is WireMock.Net.


Powered by

JetBrains logo.

About

WireMock.Net is a flexible product for stubbing and mocking web HTTP responses using advanced request matching and response templating. Based on WireMock Java, but extended with more functionality.Full documentation can be found at https://wiremock.org/dotnet/.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published

Languages