So greifen Sie in einem Unit-Test in ASP.NET 5 / MVC 6 auf HttpContext zu

Nehmen wir an, ich lege in meiner Middleware einen Wert für den http-Kontext fest. Zum Beispiel HttpContext.User.

Wie kann ich den http-Kontext in meinem Unit-Test testen? Hier ist ein Beispiel, was ich versuche zu tun

Middleware

public class MyAuthMiddleware
{
    private readonly RequestDelegate _next;

    public MyAuthMiddleware(RequestDelegate next)
    {
        _next = next;
    }

    public async Task Invoke(HttpContext context)
    {
        context.User = SetUser(); 
        await next(context);
    }
}

Prüfun

[Fact]
public async Task UserShouldBeAuthenticated()
{
    var server = TestServer.Create((app) => 
    {
        app.UseMiddleware<MyAuthMiddleware>();
    });

    using(server)
    {
        var response = await server.CreateClient().GetAsync("/");
        // After calling the middleware I want to assert that 
        // the user in the HttpContext was set correctly
        // but how can I access the HttpContext here?
    }
}

Antworten auf die Frage(8)

Ihre Antwort auf die Frage