如何在ServiceStack中编写单元/集成测试

10

我对ServiceStack非常陌生。迄今为止,我已成功地搭建了一个基本的API并使其正常工作(Northwind示例对我特别有帮助)。然而,当我尝试构建单元测试和集成测试时遇到了一些问题。

我发现另一个ServiceStack用户最近分享了一些(可能不正确的)单元测试和集成测试示例的代码片段,但我无法让它们正常工作。

这是我一直在使用的参考资料: https://github.com/ServiceStack/ServiceStack/issues/435

这是我尝试编写基本单元测试的代码,其中大部分是从其他用户的代码片段中借鉴过来: https://gist.github.com/anonymous/4957788

当我尝试在HelloWorldTest中运行测试用例时,会抛出System.NotImplementedException异常,指出“无法解析服务'HelloWorldName'”。

这让我感到困惑,因为我传递给它的是一个请求DTO,而不是一个服务,这似乎与我正在调用的ExecuteService()方法相符。但异常提示ServiceStack将我的DTO视为服务。

是否有人能够给我发送一份ServiceStack单元测试和集成测试的正确编写示例?我应该提醒一下,我还是.NET开发的新手,所以也许我的无知正在显露出来。

非常感谢。


请参考此前的答案以获取单元测试和集成测试的示例。 - mythz
谢谢,mythz。有一个关于集成测试的问题。对于端到端的集成测试,我需要实际运行服务才能使用JsonServiceClient实例连接它。我该怎么做? - Jay Vanderhought
以下是有关编程的内容,请将其从英语翻译成中文。请仅返回已翻译的文本:在下面的答案中提供了一些链接。 - mythz
1个回答

5

1
据我所了解,运行集成测试时,我不能使用现有的AppHost,而应该从AppHostHttpListenerBase创建一个新的AppHost。这是否意味着我必须将我的主要AppHost中的Configure()方法复制到这个新的AppHost中,以确保所有我的DB/Redis连接都正确初始化? - Jay Vanderhought
你可以随时针对自己的ASP.NET Web应用程序的开发实例运行集成测试,但如果你只想测试你服务的子集,那么创建一个只包含你想要测试的内容的特定AppHost是一个好选择。否则,坚持在隔离中单元测试服务,并模拟你所需的内容。 - mythz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接