多线程单元测试

本文关键字:单元测试 多线程 | 更新日期: 2023-09-27 18:27:11

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

用MSTest(VS2008)测试这个助手的最佳方法是什么?

多线程单元测试

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

在我看来,单元测试线程问题的最佳方法是预测问题,并让您的测试具体导致每种情况。单元测试每次针对相同的代码运行时都应该产生完全相同的结果。

你可能想看看微软CHESS(http://research.microsoft.com/en-us/projects/chess/)如果您没有要测试的特定问题。

这样做有点困难,因为您无法确定de-OS将如何调度线程执行。你的测试很可能会随机失败。如果可以,请更改您的设计,以便减少锁定/其他同步技术,并为线程安全性进行设计(例如,不使用共享状态)。