Created Using WireMock in UnitTests (markdown)

Stef Heyenrath
2017-01-29 13:49:14 +01:00
parent 073dd80ada
commit 5197ea5409

@@ -0,0 +1,43 @@
# WireMock with your favorite UnitTest framework
Obviously you can use your favourite test framework and use WireMock within your tests. In order to avoid flaky tests you should:
- let WireMock choose dynamicaly ports. It might seem common sens, avoid hard coded ports in your tests!
- clean up the request log or shutdown the server at the end of each test
Below a simple example using Nunit and NFluent test assertion library:
```csharp
[SetUp]
public void StartMockServer()
{
_server = FluentMockServer.Start();
}
[Test]
public async void Should_respond_to_request()
{
// given
_sut = new SomeComponentDoingHttpCalls();
_server
.Given(Request.Create().WithUrl("/foo").UsingGet())
.RespondWith(
Response.Create()
.WithStatusCode(200)
.WithBody(@"{ ""msg"": ""Hello world!"" }")
);
// when
var response = _sut.DoSomething();
// then
Check.That(response).IsEqualTo(EXPECTED_RESULT);
// and optionnaly
Check.That(_server.SearchLogsFor(Request.WithUrl("/error*")).IsEmpty();
}
[TearDown]
public void ShutdownServer()
{
_server.Stop();
}
```