【问题标题】:ServiceStack Unit test- serviceStack Response object is not initializingServiceStack 单元测试 - serviceStack 响应对象未初始化
【发布时间】:2016-03-14 20:16:02
【问题描述】:

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

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

    }
}

服务类如下

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

单元测试类如下

 [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);

    }
    }

我得到 Response 对象的空引用异常。当我使用任何客户端(邮递员或休息客户端)访问服务器时,响应对象正在初始化,但通过单元测试响应对象没有被初始化,谁能告诉我为什么会这样? 提前致谢。

【问题讨论】:

    标签: c# unit-testing servicestack nunit-3.0


    【解决方案1】:

    需要模拟请求对象。以便服务层初始化响应对象。

    以下代码更改对我有用。

       var service = appHost.Container.Resolve<SearchService>();
            service.Request = new MockHttpRequest(); 
    

    然后进行服务方法调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-13
      • 2011-03-09
      • 1970-01-01
      • 2013-03-24
      相关资源
      最近更新 更多