在Visual Studio测试项目中添加“Internet down”测试

时间:2015-01-15 13:49:37

标签: visual-studio-2010 testing integration-testing

我在Visual Studio 2010中有一个测试项目。

其中一个测试类应该发送一些互联​​网请求。

我想写一个像以下的测试:

[TestMethod()]
[ExpectedException(typeof(InternetDownException))]
public void ThrowsInternetDownExceptionWhenNoInternet()
{
    // How do I fake internet down??
    target.Connect();  // this is supposed to throw
}

重要的是要明确这不是一个严格的单元测试项目,因为它访问互联网(以及某些方法中的文件系统),但我还是希望在与我的其他项目分离的项目中进行这些测试经常运行,真正的单元测试项目。

1 个答案:

答案 0 :(得分:0)

我最终成功使用了以下方法。请注意,我使用“硬编码”连接名称(在我的情况下为“ConexãoLocal”),但有一些方法可以找到活动连接的名称(留给读者; o)

    public static void DisableInternet()
    {
        Process process = new Process();
        ProcessStartInfo psi = new ProcessStartInfo(
            "netsh",
            "interface set interface name=\"Conexão local\" admin=disabled"
        );
        process.StartInfo = psi;
        process.Start();
    }

    public static void EnableInternet()
    {
        Process process = new Process();
        ProcessStartInfo psi = new ProcessStartInfo(
            "netsh",
            "interface set interface name=\"Conexão local\" admin=enabled"
        );
        process.StartInfo = psi;
        process.Start();
    }

(另外,现在看一下,干这些方法很容易......)