【发布时间】:2017-02-20 17:33:06
【问题描述】:
我有一个使用以下方法监视文件的类:
public FileWatcher(List<string> dirsToWatch, string filter, OnChange onChange)
{
OnChangeEnt = onChange;
foreach (var dir in dirsToWatch)
{
var watcher = new FileSystemWatcher(dir);
watcher.Filter = filter;
watcher.Changed += new FileSystemEventHandler(onChange);
watcher.Created += new FileSystemEventHandler(onChange);
watcher.Renamed += new RenamedEventHandler(OnChangeHandler);
watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.LastAccess | NotifyFilters.FileName;
watcher.IncludeSubdirectories = true;
watcher.EnableRaisingEvents = true;
_watchers.Add(watcher);
}
}
我只是想知道如何对这种方法进行单元测试以获得 100% 的覆盖率。 任何帮助将不胜感激。谢谢
【问题讨论】:
-
我正在考虑对类似功能进行单元测试,但是由于您无法模拟文件存储,我会说您不能 100% 覆盖这样的事情(意见)。
-
我能想到的唯一要测试的是 _watcher 为 dirsToWatch 添加了文件系统观察程序
-
你能修改被测代码吗?我会建议抽象文件观察者。
-
你到底想测试什么,FileWatcher的配置还是工作?
标签: c# unit-testing