Unit Test HTTPRequest Headers with ServiceStack

你离开我真会死。 提交于 2019-11-29 02:21:03

You're using an self-hosting HttpListener as you would for an integration test, but you're not doing in integration test.

An integration test would look like:

[Test]
public void NewPlayer_Should_Return201AndLocation ()
{
    var client = new JsonServiceClient("http://localhost:1337/");
    client.LocalHttpWebResponseFilter = httpRes => {
        //Test response headers...
    };

    PlayerResponse response = client.Post(new Player { ... });
}

Otherwise if you want to do an unit test you don't need an AppHost and can just test the PlayerService class just like any other C# class, injecting all the dependencies and the mock Request context it needs.

[Test]
public void NewPlayer_Should_Return201AndLocation ()
{
    var mockCtx = new Mock<IRequestContext>();
    mockCtx.SetupGet (f => f.AbsoluteUri).Returns("localhost:1337/player");

    PlayerService service = new PlayerService {
        MyOtherDependencies = new Mock<IMyOtherDeps>().Object,
        RequestContext = mockCtx.Object,
    };

    HttpResult response = (HttpResult)service.Post(new Player { ... });

    //Assert stuff..
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!