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

标签 c# unit-testing filesystemwatcher

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

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

最佳答案

那么,首先考虑一下您要测试的到底是什么。

是不是检测到文件有变化后,就正确处理了?

或者是 FileSystemWatcher 类起作用了吗?

还是操作系统以正确的顺序向您发送正确的通知(其中正确基本上意味着如您所愿)?

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

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

但请注意,您的单元测试所依赖的外部复杂性越多,它就越容易崩溃。

关于c# - 如何对 FileSystemWatcher 事件进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/287279/

相关文章:

c# - 通用程序化|解决程序问题的困难

c# - 在 C# 中没有带 0 个参数的构造函数

c# - 基于具有逗号分隔值的列创建多个 DataTable 行

c# - Windows Phone 8.1 后台任务在完成前关闭

unit-testing - 错误的 url 测试用例

reactjs - 使用 moxios 模拟 axios 获取带有 queryParams 的请求

javascript - 我什么时候应该在我的 Angular JS 单元测试中使用 $provide 与 Jasmine Spies

winforms - 带有 FileSystemWatcher 的 Windows 窗体未启动子窗体

vb.net - FileSystemWatcher 更新表单上的文本框

java - 如何使用服务监控文件夹