如何对FileSystemWatcher事件进行单元测试?

时间:2008-11-13 15:40:26

标签: c# unit-testing filesystemwatcher

我正在开发一个处理转储到目标目录的文档的系统。我通过检测FileSystemWatcher OnChanged事件来获取文件。

作为单元测试的一部分,我该如何实现自动化?我应该如何组织输入文件和输出文件进行比较以验证转换是否正确?这是由发出diff命令的批处理文件更好地处理的吗?

1 个答案:

答案 0 :(得分:7)

好吧,首先要考虑一下你想测试的确切内容。

在您检测到文件发生更改后,是否正确处理?

或者FileSystemWatcher类是否有效?

或者操作系统是否以正确的顺序向您发送正确的通知(正确基本上意味着正如您所希望的那样)?

如果只需要进行处理,我会考虑模拟观察者类,或者使用IoC容器为你提供触发单元测试事件的东西。

如果操作系统以正确的顺序提供正确的事件,那么我会模拟处理文件的代码,只是为了保存“是,我被告知此文件已更改”的状态,以及然后单元测试将操作临时目录中的文件。

但要注意,单元测试所依赖的外部复杂性越多,它就越容易破碎。