我正在开发一个处理转储到目标目录中的文档的系统。我通过检测 FileSystemWatcher OnChanged 事件来获取文件。
作为单元测试的一部分,我应该如何自动化呢?我应该如何组织比较的输入文件和输出文件以验证转换是否正确?这是否可以通过发出 diff 命令的批处理文件更好地处理?
我正在开发一个处理转储到目标目录中的文档的系统。我通过检测 FileSystemWatcher OnChanged 事件来获取文件。
作为单元测试的一部分,我应该如何自动化呢?我应该如何组织比较的输入文件和输出文件以验证转换是否正确?这是否可以通过发出 diff 命令的批处理文件更好地处理?
好吧,首先考虑一下您要测试的到底是什么。
是不是在你检测到一个文件有变化之后,它就被正确处理了?
还是 FileSystemWatcher 类有效?
还是操作系统以正确的顺序向您发送正确的通知(正确的意思基本上是您所期望的)?
如果只需要完成处理,我会考虑模拟观察者类,或者使用 IoC 容器为您提供触发单元测试事件的东西。
如果操作系统是否以正确的顺序提供正确的事件,那么我会模拟处理文件的代码,只是为了保存状态“是的,我被告知该文件已更改”,然后进行单元测试然后将操作临时目录中的文件。
但是请注意,您的单元测试所依赖的外部复杂性越多,它就越容易被破坏。