为了测试并发性问题,我想使用单元测试在两个不同的线程上同时调用相同的方法.实际上我可能想在几个线程上同时调用相同的方法.
我正在使用微软内置的VS2008单元测试仪.
我的想法是我会锁定一个对象,然后同步设置每个线程,这些线程会立即等待锁定然后释放锁定,这将允许所有线程访问共享资源并测试代码正确处理多个的能力线程.
有没有人这样做过?我在这里采取合理的方法吗?
我之前已经这样做了,即使结果并不总是可重现,它们也可以突出显示代码中的问题或错误.
我不使用Microsoft的单元测试,但我更喜欢具有ThreadedRepeat属性的MbUnit,它允许您指定要运行的线程数.它使整个多线程测试更加容易,只需编写测试并添加属性即可.