Я использовал платформу Nunit для написания модульного теста для API ServiceStack. код, как показано ниже
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. Когда я нажимаю на сервер с помощью любого клиента (почтальона или остального клиента), этот объект ответа инициализируется, но через модульный тест объект ответа не инициализируется, может ли кто-нибудь сказать мне, почему это происходит? Заранее спасибо.