为信号量编写单元测试?

时间:2014-06-25 02:54:11

标签: c# multithreading unit-testing semaphore

我发现了很多关于如何编写多线程代码测试的问题。无论如何,它们大多过于抽象,只有少数真实测试的例子。我提出了一个更狭隘的问题。

如何在C#中为信号量编写一个好的测试?让我们说一下SemaphoreSlim实现的测试。它应该涵盖本质逻辑而不是整堆实现细节。

1 个答案:

答案 0 :(得分:2)

测试任何阻塞操作总是非常困难。通常,锁定/信号量在功能上进行测试。换句话说,我不建议创建一个复杂的单元测试来尝试验证阻塞调用,而是建议创建一个试图破解代码的测试...信号量通常用于限制,如果代码仍然有效尽管电话电量非常大,但我认为这很好。信号量不是您编写的代码(假设您使用的是.NET提供的类),因此您不需要测试其功能。