2

我已经在 C# 上实现了并发循环缓冲区,现在想测试它的工作。我有非常简单的 API -void Write(T element)T Read(). 我正在寻找一个很好的例子,如何测试所有可能的用例并检测所有可能的错误,包括竞争条件。从 2 个线程进行简单的交替写入和读取似乎不是一个好主意,因为我们无法控制顺序来自不同线程的 API 调用。

4

1 回答 1

3

用例之一应包括写入缓冲区(不从中读取),直到缓冲区已满。

如果您的测试用例实现了从同一个线程读取和写入,那么您可以控制读取/写入的顺序。

我喜欢多线程代码中线程安全的实现足够简单,可以“通过检查”验证,即通过代码审查(而不仅仅是通过测试)。

于 2012-11-17T16:53:08.033 回答