【问题标题】:How to write ASP.NET API Integration tests如何编写 ASP.NET API 集成测试
【发布时间】:2015-05-04 08:02:35
【问题描述】:

对于所有花时间阅读我的问题的人,我想指出,我正在编写集成测试而不是单元测试。

使用站点提供的集成测试的定义(位于问题的底部):

集成测试不使用模拟对象来替代 服务依赖的实现。相反,集成测试 依赖于应用程序的服务和组件。的目标 集成测试是为了锻炼应用程序的功能 在其正常的运行时环境中。

我的问题是为 ASP.net Web API 编写集成测试的最佳实践是什么。目前我正在使用 Filip 提供的内存主机方法。 W. 博客文章。

我的第二个问题是,你如何确保你的测试数据在那里并且是正确的,当你没有模拟时(msdn 和其他网站清楚地说,集成测试不模拟数据库)。互联网上充斥着如何编写极其简单的集成测试的示例,但对于更复杂的 api(任何比返回 1 更远的东西)的示例为零

参考网站: https://msdn.microsoft.com/en-us/library/ff647876.aspx
https://msdn.microsoft.com/en-us/library/vstudio/hh323698(v=vs.100).aspx http://www.codeproject.com/Articles/44276/Unit-Testing-and-Integration-Testing-in-Business-A http://blog.stevensanderson.com/2009/06/11/integration-testing-your-aspnet-mvc-application/

菲利普。 W. 内存托管: http://www.strathweb.com/2012/06/asp-net-web-api-integration-testing-with-in-memory-hosting/

【问题讨论】:

    标签: asp.net api asp.net-web-api integration-testing


    【解决方案1】:

    你有没有看到我在at this other SO question here 上的回答。我将用下面的附加信息来弥补这一点。

    在我们的发布管道(使用 Visual Studio 发布管理器 2013)中,我们通过从头开始创建数据库(所有脚本),从已知的测试脚本提供一个夜间集成数据库 - 最初我们克隆了生产,但随着数据的增长,这太耗时了作为夜间集成构建的一部分。配置数据库后,我们对集成 VM Web 服务器执行相同操作,并将最新构建部署到该环境。在这些出现之后,我们再次从命令行运行我们的单元测试作为发布管道的一部分,包括用我在链接的答案中描述的自定义操作过滤器装饰的测试。

    【讨论】:

    • 谢谢。你的回答确实给了我一些关于如何做到这一点的难题,但我不会将其标记为答案,因为我想听到更多关于这个话题的意见。
    猜你喜欢
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-31
    • 2020-01-16
    相关资源
    最近更新 更多