Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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# 为信号量编写单元测试?_C#_Multithreading_Unit Testing_Semaphore - Fatal编程技术网

C# 为信号量编写单元测试?

C# 为信号量编写单元测试?,c#,multithreading,unit-testing,semaphore,C#,Multithreading,Unit Testing,Semaphore,我发现了很多关于如何为多线程代码编写测试的问题。不管怎么说,它们大多过于抽象,实际测试的例子也很少。我提出了一个更狭隘的问题 如何用C语言编写一个好的信号量测试?让我们来看一个信号量LIM实现的测试。它应该涵盖基本逻辑,而不是全部实现细节。测试任何阻塞操作总是非常困难的。通常,对锁/信号量进行功能测试。换句话说,与其尝试创建一个复杂的单元测试来尝试和验证阻塞调用,我建议创建一个尝试破坏代码的测试。。。信号灯通常用于节流,所以如果代码非常繁重,尽管通话非常频繁,我会认为它很好。信号量不是您编写的代

我发现了很多关于如何为多线程代码编写测试的问题。不管怎么说,它们大多过于抽象,实际测试的例子也很少。我提出了一个更狭隘的问题


如何用C语言编写一个好的信号量测试?让我们来看一个信号量LIM实现的测试。它应该涵盖基本逻辑,而不是全部实现细节。

测试任何阻塞操作总是非常困难的。通常,对锁/信号量进行功能测试。换句话说,与其尝试创建一个复杂的单元测试来尝试和验证阻塞调用,我建议创建一个尝试破坏代码的测试。。。信号灯通常用于节流,所以如果代码非常繁重,尽管通话非常频繁,我会认为它很好。信号量不是您编写的代码(假设您使用的是.NET提供的类),因此您不需要测试它们的功能。

SemaphoreSlim就是一个例子。当然,我不想为.NET framework类编写测试。真正的例子是为这个类编写测试: