【问题标题】:How to write a test project with dependency to a ASP.Net/PHP project?如何编写依赖于 ASP.Net/PHP 项目的测试项目?
【发布时间】:2015-01-14 23:24:36
【问题描述】:

假设我的解决方案中有三个项目。

1 是一个简单的打印输出的 ASP.Net 项目

2 是一个使用 VS.PHP 的 PHP 项目,它只是打印输出(与 ASP.Net 项目的输出相同。只是在不同的环境中)

3 一个 C# 控制台项目,使用上述两个项目作为服务器并解析它们的响应。

现在我想添加一个名为“Test”的其他项目并用单元测试填充它,主要用于测试解决方案的完整性。 我是单元测试的新手,但我的主要问题与它们无关。关于这个简单的问题:在执行我的测试之前,如何以某种方式运行前两个项目(使用 VS.Php Webserver for PHP 和 IIS Express for ASP.Net 项目 - 每次一个)?如果没有前两个项目中的一个处于活动状态,我无法测试第三个项目,因此我无法检查项目的完整性。甚至不是它的一部分。

那么,你有什么建议吗?我在这里错了吗?也许我只是不明白一些事情。

使用 Visual Studio 2013 更新 3

【问题讨论】:

    标签: visual-studio unit-testing visual-studio-2013


    【解决方案1】:

    通常对于单元测试,您不会将实时系统与测试连接在一起。这将被称为集成测试。我通常用于单元测试的路线是它需要 a) 始终快速并且 b) 能够在没有网络连接的情况下运行。

    如果您想进行单元测试,最简单的方法是围绕您的依赖系统创建接口。不要使用这些名称,而是使用 IAspNetProject 和 IPhpProject 之类的名称。为这些接口编写代码,然后用假数据替换它们的实现以进行单元测试。

    如果你想做集成测试,那么你可以使用http://nancyfx.org/ 之类的东西来创建一个自托管的网络项目。还有很多其他选项可以在本地启动轻量级 Web 应用程序进行测试。

    【讨论】:

    • 我明白了,但是 VS 可以帮助我进行集成测试吗?在我的场景中,项目中的一个小改动可能会破坏解决方案的完整性。所以我需要运行测试频率。不幸的是,我不能接受模拟数据的建议,因为项目本身就是一个网络项目:D
    • 是的,您可以使用 Visual Studio 测试框架编写测试,它们可以是集成测试。您还可以编写控制台应用程序来测试代码。根据我的经验,集成测试更加开放。然后我会花时间来创建模拟环境。在本地运行的虚拟服务器可以接受连接等。
    • 编写控制台应用程序可能是我的方式。谢谢你提到这一点。是的,我已经对本地服务器进行了一些测试,只是想对真实服务器进行更多测试。
    猜你喜欢
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-24
    • 1970-01-01
    • 2019-01-01
    • 1970-01-01
    相关资源
    最近更新 更多