如何在C#中的单元/集成测试中模拟"无Internet连接"

cur*_*tor 6 c# networking unit-testing

我有一个组件(部分)使用互联网连接.我写了一些UnitTests来确保组件正常工作.但是,我想测试没有Internet连接的组件的行为.

所以,我的目标是以某种方式临时禁用互联网,或整个互联网连接,并在测试后重新激活.

Nat*_*ate 2

系统可能会出现“无互联网”的情况有很多种,答案实际上取决于您的意思。

正如已接受的其他答案所暗示的那样,您可以简单地禁用网络接口。这保证了您没有互联网,但计算机也会知道它也没有网络。

其他几个选项是

  1. 要删除默认网关(这可能需要在控制面板中设置静态 IP 设置,但我确信您也可以以编程方式执行此操作

这样,计算机仍然认为它已连接,但除了本地子网之外,它不会有任何网络访问权限

  1. 删除 DNS 服务器设置,请参阅上面的链接。

这样,计算机就可以直接进行基于 IP 的访问,但对于普通用户来说,似乎“没有互联网”。