2012-03-09 151 views
0

我有一个帮助类,它根据其模式验证XML。有一些静态方法/函数结合实例方法/函数,我想测试它的线程安全性。多线程单元测试

使用MSTest(VS2008)测试此帮手的最佳方法是什么?

+0

一般来说这是可能的,但如果我们要讨论具体的技术 - 请分享一个你想测试的代码 – sll 2012-03-09 16:19:24

回答

0

也许我误解了你的问题,为什么不启动多个simultanious线程来处理你的类并在等待所有线程完成之前捕获所有与线程有关的异常,然后检查结果中的并发问题?

0

在我看来,单元测试线程问题的最好方法是预测问题并让你的测试专门引起每种情况。单元测试每次运行相同的代码时应始终产生完全相同的结果。

如果您没有要测试的特定问题,则可能需要查看Microsoft CHESS(http://research.microsoft.com/en-us/projects/chess/)。

+0

再次测试公共方法/函数全部通过。但是这个组件在生产中失败(Biztalk - > Orchestrations)。有些时候,消息是成功验证,而消息是无效的,反之亦然.... – 2012-03-09 13:45:59

0

这样做很难,因为您无法确定操作系统如何安排线程执行。你的测试很可能会随机失败。 如果可以,请更改您的设计,以便可以减少锁定/其他同步技巧并设计线程安全性(例如,不使用共享状态)。