首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#重新创建用于测试的异常

C#重新创建用于测试的异常
EN

Stack Overflow用户
提问于 2018-01-30 06:12:47
回答 1查看 60关注 0票数 0

如何重新创建“指定的网络名称不再可用”异常进行测试。

下面的代码试图复制同一网络上的一个文件。如果与网络的连接断开,我希望在抛出异常之前重新调用CopyFile方法,并在几秒钟后尝试运行它。测试此异常最简单的方法是什么?

代码语言:javascript
复制
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
        {

        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2018-01-30 06:26:55

我们的想法是创建一个测试,其中File.Copy解析为您为测试目的而设置的静态方法,而不是System.IO.File.Copy。换句话说,你嘲笑了File.Copy

您可以定制此方法以涵盖所有情况;第一次尝试成功,第一次失败,然后再成功,或者在所有尝试中都失败。

事实上,它并不真正复制任何东西,只是返回或抛出,这与您正在测试的方法无关。

我的建议是,使用现有的工具来做这件事;Alexei的评论为您指明了正确的方向。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48510855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档