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引用异常.当我使用任何客户端(邮递员或休息客户端)命中服务器时,响应对象正在初始化但通过单元测试响应对象未初始化,有人能告诉我它为什么会发生吗?提前致谢.
需要模拟请求对象.所以服务层将初始化响应对象.
以下代码更改对我有用.
var service = appHost.Container.Resolve<SearchService>();
service.Request = new MockHttpRequest();
Run Code Online (Sandbox Code Playgroud)
然后进行服务方法调用.
| 归档时间: |
|
| 查看次数: |
436 次 |
| 最近记录: |