次のパターンがあり、テスト実行時間に劇的な影響を与えました。
理由を理解したい。
@RunWith(PowerMockRunner.class)
@PrepareForTest(SomeSingleton.class)
public class SomeTest {
@Before
public void setUp() throws Exception {
PowerMockito.mockStatic(SomeSingleton.class);
Mockito.when(SomeSingleton.getInstance()).thenReturn(new SomeSingleton());
}
クラス SomeSingleton は非常にレガシーであり (冗談ではありません)、Spring コンテナーから共有インスタンスを取得します。
備考: インスタンスに public static setter を追加しました (シングルトンのアイデアそのものを台無しにしました) が、これで 25 秒勝ちました!
質問: "PrepareForTest" と "mockStatic" は、25 秒かかる正確には何をしますか?