【问题标题】:Unit testing Web API using HttpClient proxy class in VS 2013在 VS 2013 中使用 HttpClient 代理类对 Web API 进行单元测试
【发布时间】:2014-02-05 13:50:05
【问题描述】:

我有一些 Web API 和一些基于 HttpClient 的代理类用于这个 Web API。

现在我想进行一些单元测试,这些单元测试将与将与 Web API 交互的代理类一起操作。

我在 VS 2013 中将所有这三个项目组织为一个解决方案。但这里的问题是,为了运行测试,我还必须运行 Web API 项目。但是如果我运行 Web API,我就无法运行测试。如果我运行测试,Web API 不会启动,因为每次我停止调试 Web API 时 VS 都会将其关闭。

在我运行单元测试时是否可以以某种方式继续运行 Web API?在以前的 VS 版本中,即使您没有调试它,也可以在 IIS express 中继续运行 Web 应用程序。如何在 VS 2013 中做同样的事情?

目前我只找到了一种可能的解决方案 - 打开两个 Visual Studio 并在其中一个中运行 Web API,并在另一个中进行测试。但它不方便,我相信这种情况有更优雅的解决方案......

【问题讨论】:

  • 我有同样的问题或疑问。我的问题是如何在测试期间在一个解决方案下运行测试和 web api 项目。我现在要做的是运行两个 VS 实例,一个用于 WebAPI,一个用于 UnitTest

标签: unit-testing asp.net-web-api visual-studio-2013 dotnet-httpclient


【解决方案1】:

使用您的 API 的内存托管。这样一来,它将在同一个进程中运行,它将产生零网络流量,并且您的测试将运行得更快。

除此之外,我总是在不同的 VS 实例中运行 Web API。在我看来,这是一个更优雅的解决方案。

【讨论】:

    【解决方案2】:

    您也可以在不调试的情况下启动您的项目,这将启动应用程序的一个实例,但仍允许您运行单元测试。

    从调试开始: 1. 右键单击​​要运行的项目。 一种。选择设置为启动项目。 2. 进入调试菜单,不调试点击开始。

    这将启动您的 API 实例并允许您测试端点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-25
      • 1970-01-01
      • 1970-01-01
      • 2017-03-03
      • 1970-01-01
      • 1970-01-01
      • 2015-11-09
      • 2013-11-09
      相关资源
      最近更新 更多