如何重新创建“指定的网络名称不再可用”异常进行测试。
下面的代码试图复制同一网络上的一个文件。如果与网络的连接断开,我希望在抛出异常之前重新调用CopyFile方法,并在几秒钟后尝试运行它。测试此异常最简单的方法是什么?
private void CopyFile()
{
int numberOfExecution = 0;
bool copying = true;
while (copying)
{
copying = false;
try
{
File.Copy(file1, file2);
}
catch (Exception ex)
{
if (ex.Message.Contains("The specified network name is no longer available"))
{
numberOfExecution += 1;
System.Threading.Thread.Sleep(5000);
if (numberOfExecution >= 5)
{
throw ex;
}
copying = true;
}
else
{
throw ex;
}
}
finally
{
}
}
}发布于 2018-01-30 06:26:55
我们的想法是创建一个测试,其中File.Copy解析为您为测试目的而设置的静态方法,而不是System.IO.File.Copy。换句话说,你嘲笑了File.Copy。
您可以定制此方法以涵盖所有情况;第一次尝试成功,第一次失败,然后再成功,或者在所有尝试中都失败。
事实上,它并不真正复制任何东西,只是返回或抛出,这与您正在测试的方法无关。
我的建议是,使用现有的工具来做这件事;Alexei的评论为您指明了正确的方向。
https://stackoverflow.com/questions/48510855
复制相似问题