Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单元测试FileSystemWatcher.Error事件_C#_.net_Unit Testing_Filesystemwatcher - Fatal编程技术网

C# 单元测试FileSystemWatcher.Error事件

C# 单元测试FileSystemWatcher.Error事件,c#,.net,unit-testing,filesystemwatcher,C#,.net,Unit Testing,Filesystemwatcher,我正在尝试对已附加到FileSystemWatcher错误事件的私有方法进行单元测试。MSDN说,此事件“发生在内部缓冲区溢出时”。我曾尝试导致缓冲区溢出,但迄今为止尚未成功。FileSystemWatcher的各种属性包括: fileWatcher.IncludeSubdirectories = false; fileWatcher.Filter = "*"; fileWatcher.NotifyFilter = (NotifyFilters.FileName | NotifyFilters.

我正在尝试对已附加到FileSystemWatcher错误事件的私有方法进行单元测试。MSDN说,此事件“发生在内部缓冲区溢出时”。我曾尝试导致缓冲区溢出,但迄今为止尚未成功。FileSystemWatcher的各种属性包括:

fileWatcher.IncludeSubdirectories = false;
fileWatcher.Filter = "*";
fileWatcher.NotifyFilter = (NotifyFilters.FileName | NotifyFilters.LastAccess | NotifyFilters.Size);

为了单元测试的目的,引发此事件的最佳方式是什么

我怀疑您能否可靠地导致缓冲区溢出。它将取决于系统和配置。(它甚至可能与负载有关)。我建议您模拟FileSystemWatcher类,自己触发模拟事件来测试处理程序


如果您不熟悉模拟的概念,请参阅和了解更多详细信息。

刚刚在现有代码中添加了错误事件的处理程序:)。我正在测试文件的处理过程,有112个文件(正如我正在处理的bug中所做的那样),每次我将文件复制到关注的文件夹时,都会触发此操作。 每个文件大约有72k,我使用TotalCommander复制它们,我想它是一个简单的迭代复制

不幸的是,这一切都取决于系统配置和加载(正如simon指出的)

当然,您可以尝试在每个写入的字节之后使用多个写入程序进行刷新,但没有什么可以保证这一点