我现在正在修复缺陷,原始代码如下:
[gpa] > filterGPAFrom.Text AND [gpa] < filterGPATo.Text
我认为造成此缺陷的根本原因可能是由第三方程序删除了生成的文件,然后outputDir.GetFiles()[0]引发了空引用异常。
我将像这样重构RunToStreamCore方法:
public void Run()
{
var tempOutputDir = new DirectoryInfo("d:\Test\");
GenerateFiles(tempOutputDir);
var result = RunToStreamCore(tempOutputDir);
}
void GenerateFiles()
{
// Run complex logic to generate files
}
public MemoryStream RunToStreamCore(DirectoryInfo outputDir)
{
return new MemoryStream(File.ReadAllBytes(outputDir.GetFiles()[0].FullName));
}
问题是如何针对这种情况编写单元测试?如何模拟删除文件之前删除文件的行为?