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 the functionality from https://WireMock.org, but extended with more functionality.

License

Notifications You must be signed in to change notification settings

WireMock-Net/WireMock.Net

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 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

📦 NuGet packages

Official Preview ℹ️
  WireMock.Net NuGet Badge WireMock.Net MyGet Badge WireMock.Net
  WireMock.Net.StandAlone NuGet Badge WireMock.Net MyGet Badge WireMock.Net.StandAlone
  WireMock.Net.FluentAssertions NuGet Badge WireMock.Net.FluentAssertions MyGet Badge WireMock.Net.FluentAssertions
  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.RestClient NuGet Badge WireMock.Net.RestClient MyGet Badge WireMock.Net.RestClient
  WireMock.Net.xUnit NuGet Badge WireMock.Net.xUnit MyGet Badge WireMock.Net.xUnit
  WireMock.Net.Testcontainers NuGet Badge WireMock.Net.Testcontainers MyGet Badge WireMock.Net.Testcontainers
  WireMock.Org.RestClient NuGet Badge WireMock.Org.RestClient MyGet Badge 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