It is also available on ASP.NET 5: Microsoft.AspNet.TestHost .
Here is an example. Middleware:
public class DummyMiddleware { private readonly RequestDelegate _next; public DummyMiddleware(RequestDelegate next) { _next = next; } public async Task Invoke(HttpContext context) { Console.WriteLine("DummyMiddleware"); context.Response.ContentType = "text/html"; context.Response.StatusCode = 200; await context.Response.WriteAsync("hello world"); } }
Test:
[Fact] public async Task Should_give_200_Response() { var server = TestServer.Create((app) => { app.UseMiddleware<DummyMiddleware>(); }); using(server) { var response = await server.CreateClient().GetAsync("/"); Assert.Equal(HttpStatusCode.OK, response.StatusCode); } }
You can learn more about using the TestServer class in tests .
source share