我需要测试某个方法在互联网连接断开时是否仍能正常运行。
此测试可以在Linux,Windows甚至是VM上的Jenkins上运行,因此我认为特定于操作系统的解决方案不是最好的方法。我还认为改变安全策略文件并不理想。
理想的执行流程如下所示:
disableNetwork()
testMethod()
enableNetwork()
答案 0 :(得分:0)
正如在这里的其他答案中已经说过的那样,没有Java原生方式这样做。因此需要OS解决方案。这就是我为Linux所做的:
public void pullTheCable() {
Runtime.getRuntime().exec("sudo ifconfig eth0 down");
}
这将禁用您的网络适配器。 (用相应的适配器替换' eth0')。这将再次提出来:
public void pushTheCable() {
Runtime.getRuntime().exec("sudo ifconfig eth0 up");
}
您还需要编辑文件/ etc / sudoers,以便在不要求输入密码的情况下授予用户执行sudo命令的权限。更多相关内容:
how do you make sudo save the password?
只要我有Windows解决方案,我就会更新此答案。