【问题标题】:Referencing a web service project from unit testing project: project not in list从单元测试项目中引用 Web 服务项目:项目不在列表中
【发布时间】:2010-11-12 17:51:39
【问题描述】:

问题:试图从我的 VS 单元测试项目中引用一个 .NET 2.0 Web 服务项目。

在单元测试项目中的References文件夹右击->添加引用。 .NET 2.0 Web 服务未列在可供参考的项目列表框中。

我知道这个用例是可能的;我之前曾成功引用(在其他解决方案中)来自 .NET 3.5 单元测试项目的 .NET 3.5 Web 服务。

这个想法是对在我的 .asmx 旁边的类中找到的所有公共方法进行单元测试。我已将所有业务逻辑从 .asmx 文件本身抽象到 Web 服务项目的子目录中的 .cs 文件中。所以这里的想法是测试执行业务逻辑的类,Web 服务本身(处理 HTTP 请求)。

配置

  • Visual Studio 2008
  • .NET 3.5 兼容性的 VS 单元测试项目
  • .NET 2.0 兼容性的 Web 服务项目
  • 版本 9 的解决方案文件。

问题:您知道为什么 Visual Studio 2008 不允许我从 .NET 3.5 单元测试项目中引用 .NET 2.0 Web 服务吗?

【问题讨论】:

    标签: visual-studio-2008 web-services unit-testing .net-2.0


    【解决方案1】:

    没有。切勿直接引用 Web 服务项目。你想添加一个“网络参考”。

    【讨论】:

    • 谢谢约翰,我经常学习并感谢您对 SO 的所有回答。这里的关键是我之前已经将这个直接引用到 v3.5 解决方案中,并且效果很好!单元测试程序集应该调用 Web 服务的类和公共方法。听起来您反对直接引用 Web 服务程序集的业务层的想法。我很想听听为什么/不。谢谢!
    • 业务层不属于 Web 服务程序集。唯一属于那里的是服务。其余的应该在单独的程序集中,并且当然是可测试的。
    【解决方案2】:

    这个问题比之前描述的要窄一些。

    最终的结果是:

    • Web 服务项目实际上是一个带有单个 .asmx 文件的网站项目 (!)。我很震惊地意识到这一点。呵呵!

    • 该项目是作为 Web 服务项目从头开始重新创建的。所有逻辑都移至John's advice in the comments 上的外部程序集。

    【讨论】:

      猜你喜欢
      • 2014-07-01
      • 2012-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多