相對一個函數中寫的鎖的邏輯進行併發測試,由於業務代碼很複雜,中間會進行很多操作,所以想要使用PowerMockito進行mock,這些非測試目標函數都是靜態方法,在只有1~2個線程運行的情況下,是可以mock成功的。但是線程數到3個以上,就會出現時好時壞的情況,有時候mock就會失效。因爲對PowerMockito內部的實現原理不瞭解,在網上找到相關的資料蒐集在這裏。
- 在多線程中使用powermock不是一種推薦的行爲。有以下的帖子詳述了原因:
在多線程構建場景下Powermockito無法在不同類中Mock同一個靜態方法
雖然我只mock了一個類的幾個靜態方法,多線程中也只調用了這一個類中的一個待測試的靜態方法,但是也出現了帖子中說的問題。 - 未完待續