相对一个函数中写的锁的逻辑进行并发测试,由于业务代码很复杂,中间会进行很多操作,所以想要使用PowerMockito进行mock,这些非测试目标函数都是静态方法,在只有1~2个线程运行的情况下,是可以mock成功的。但是线程数到3个以上,就会出现时好时坏的情况,有时候mock就会失效。因为对PowerMockito内部的实现原理不了解,在网上找到相关的资料搜集在这里。
- 在多线程中使用powermock不是一种推荐的行为。有以下的帖子详述了原因:
在多线程构建场景下Powermockito无法在不同类中Mock同一个静态方法
虽然我只mock了一个类的几个静态方法,多线程中也只调用了这一个类中的一个待测试的静态方法,但是也出现了帖子中说的问题。 - 未完待续