【发布时间】:2018-08-13 04:59:16
【问题描述】:
我有一个接受参数源文件夹/源文件的方法。我已经以这样的方式处理代码,如果源文件夹或源文件不存在,它应该相应地抛出 DirectoryNotFound 异常或 FileNotFound 异常。 以下是代码片段
Boolean isSourceExist = Directory.Exists(sourceFileorFolder);
Boolean isFileExist = File.Exists(sourceFileorFolder);
if (!(
((isSourceExist == true) && (isFileExist == false)) ||
((isSourceExist == false) && (isFileExist == true))
))
{
if (isSourceExist == false)
throw new DirectoryNotFoundException();
else if (isFileExist == false)
throw new FileNotFoundException();
}
在尝试针对负面情况对此方法进行单元测试时,即提供一个不存在的文件夹,[ExpectedException(typeof(DirectoryNotFoundException))] 在单元测试用例中失败。 但实际代码会根据输入抛出适当的异常来正确响应。
提前致谢
【问题讨论】:
-
为什么需要
if (!(((isSourceExist == true) && (isFileExist == false)) || ((isSourceExist == false) && (isFileExist == true))))? -
谢谢切坦。您要求的条件是确保源必须以文件或文件夹的形式存在。
-
支线话题:UT不应该执行真正的IO。
标签: c# unit-testing