我已经使用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);
}
}
我收到响应对象的空引用异常。当我使用任何客户端(邮递员或rest客户端)访问服务器时,响应对象都已初始化,但通过单元测试响应对象却未初始化,有人可以告诉我为什么会这样吗?
提前致谢。
参考方案
需要模拟请求对象,以便服务层初始化响应对象。
以下代码更改为我工作。
var service = appHost.Container.Resolve<SearchService>();
service.Request = new MockHttpRequest();
然后调用服务方法。
NUnit-用于测试事务的单元测试用例 - c#我有如下方法。我想为以下方法编写两个测试用例。1)提交数据成功完成交易2)带有回滚数据的失败事务如何编写涉及事务并成功与失败的测试用例?public async Task<List<string>> UpdateRequest(MetaData data, List<string> Ids, string requeste…
运行所有测试时单元测试失败,但调试时通过 - c#我在Visual Studio 2017中使用NUnit3并进行TDD。自从我更新代码以使最新的测试通过以来,确实发生了一些奇怪的事情。现在,当我单击“运行所有测试”时,其他三个测试都失败了,如下所示:它告诉我,Assert方法中的实际值和预期值不相等。但是,当我在Assert方法所在的行上放置一个断点并开始调试时,stacktrace显示期望值和实际值相同…
减少测试用例之间的耦合 - java我试图学习有关JUnit和TDD的更多信息,但是我遇到了一些测试用例之间的耦合问题。当我为特定数据类型的API编写测试用例时,比如说Deque<T>,如何限制测试用例之间的耦合?例如,如果我正在为insertFirst(T item)方法编写一个测试用例,那么似乎很容易假设我应该能够在正确初始化的对象上调用该方法之后断言两件事: Deque对象的…
集成测试,但是要多少钱? - javaImprove this question 我团队中最近的一次辩论使我感到奇怪。基本主题是功能/集成测试需要涵盖多少内容和内容(确保它们不相同,但是示例无关紧要)是虚假的。假设您有一个类似“controller”的类:public class SomeController { @Autowired Validator val; @Autowired Data…
单元测试休息点 - java我已经用Java编写了REST端点。应用程序中有c#代码使用RestClient调用这些端点。我正在考虑为这些编写单元测试。只是想知道什么是最好的方法? Moq框架或NUNIT还是其他?有任何想法吗?谢谢。 参考方案 如果要在Java中测试REST端点,则可以使用Mockito(https://site.mockito.org/)之类的模拟框架来模拟所需的任…