C# 如果某些代码是线程安全的,那么进行单元测试的最佳方法是什么?

C# 如果某些代码是线程安全的,那么进行单元测试的最佳方法是什么?,c#,.net,c#-4.0,nunit,C#,.net,C# 4.0,Nunit,可能重复: 如果某些代码是线程安全的,我正在寻找进行单元测试的最佳方法 我使用NUnit和Moq作为单元测试框架。那么,您的代码使用并发吗?因为如果没有,它已经是线程安全的了。我相信你的问题从根本上是错误的,应该是“如何设计线程安全代码?” 这样一个问题的问题是,它非常广泛,当设计代码是线程安全时,有很多事情需要考虑。 然而,您可以做一些事情来测试您的代码,就是在一段较长的时间内使用蛮力和多线程。如果结果不一致,则可能存在同步问题。这里的问题当然是,不一致的结果不一定是与并发相关的问题,它仍然

可能重复:

如果某些代码是线程安全的,我正在寻找进行单元测试的最佳方法


我使用NUnit和Moq作为单元测试框架。

那么,您的代码使用并发吗?因为如果没有,它已经是线程安全的了。我相信你的问题从根本上是错误的,应该是“如何设计线程安全代码?”

这样一个问题的问题是,它非常广泛,当设计代码是线程安全时,有很多事情需要考虑。 然而,您可以做一些事情来测试您的代码,就是在一段较长的时间内使用蛮力和多线程。如果结果不一致,则可能存在同步问题。这里的问题当然是,不一致的结果不一定是与并发相关的问题,它仍然可能使用单个线程发生


您需要做的是查看您希望线程安全的代码,基本上问问自己“如果我在这里无限期地睡眠会发生什么?”。如果您得出结论,在运行大量随机睡眠时间交错的并发代码时,一切都正常(这使得并发问题更加明显),那么您的思路是正确的。

那么,您的代码使用并发吗?因为如果没有,它已经是线程安全的了。我相信你的问题从根本上是错误的,应该是“如何设计线程安全代码?”

这样一个问题的问题是,它非常广泛,当设计代码是线程安全时,有很多事情需要考虑。 然而,您可以做一些事情来测试您的代码,就是在一段较长的时间内使用蛮力和多线程。如果结果不一致,则可能存在同步问题。这里的问题当然是,不一致的结果不一定是与并发相关的问题,它仍然可能使用单个线程发生


您需要做的是查看您希望线程安全的代码,基本上问问自己“如果我在这里无限期地睡眠会发生什么?”。如果您得出结论,在运行并发代码时,所有操作都是有效的,并且交错了大量随机睡眠时间(这使得并发问题更加明显),那么您就走上了正确的道路。

@Chris Lively,已经检查过了,但在这个问题上没有发现任何对我有用的东西…你为什么认为你现在会得到更好的答案?你的问题没有新的或不同的东西。NUnt和Moq不适合/不足够。你可以考虑编辑这个问题来提供为什么其他答案没有帮助的细节。也许可以给你的问题增加更多的细节,这有助于描述它。@Chris Lively,已经检查过了,但在这个问题上没有发现任何对我有用的东西……你为什么认为你现在会得到更好的答案?你的问题没有新的或不同的东西。NUnt和Moq不适合/不足够。你可以考虑编辑这个问题来提供为什么其他答案没有帮助的细节。也许可以为你的问题增加更多的细节,这有助于描述它。