ServiceStack单元test- serviceStack响应对象未初始化

JSP*_*NET 2 c# unit-testing servicestack nunit-3.0

我使用Nunit框架为ServiceStack apis编写单元测试.代码如下

public class AppHost : AppHostBase
{
    public AppHost()
        : base("SearchService", typeof(SearchService).Assembly)
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

服务类如下

public class SearchService:Service
{
   public SearchResponse Get(SearchRequest request)
   { 
     // to stuff
     Response.StatusCode = (int)HttpStatusCode.OK;
     return SearchReponse;
   }
}
Run Code Online (Sandbox Code Playgroud)

单元测试类如下

 [TestFixture]
public class SearchServiceTests
{
    private readonly ServiceStackHost appHost;

    public SearchServiceTests()
    {
        appHost = new BasicAppHost(typeof(SearchService).Assembly)
        {
        }.Init();

    }
     [TestFixtureTearDown]
    public void TestFixtureTearDown()
    {
        appHost.Dispose();
    }


    [Test]

    public void TestMethod1()
    {
        var service = appHost.Container.Resolve<SearchService>();

        var r= service.Get(new SearchRequest());

       Assert.That(r, Is.Not.Null);

    }
    }
Run Code Online (Sandbox Code Playgroud)

我得到Response对象的null引用异常.当我使用任何客户端(邮递员或休息客户端)命中服务器时,响应对象正在初始化但通过单元测试响应对象未初始化,有人能告诉我它为什么会发生吗?提前致谢.

JSP*_*NET 5

需要模拟请求对象.所以服务层将初始化响应对象.

以下代码更改对我有用.

   var service = appHost.Container.Resolve<SearchService>();
        service.Request = new MockHttpRequest(); 
Run Code Online (Sandbox Code Playgroud)

然后进行服务方法调用.