使用PowerMock进行每次测试后,模拟行为会重置

使用PowerMock进行每次测试后,模拟行为会重置,第1张

使用PowerMock进行每次测试后,模拟行为会重置

方法

PowerMockito.mockStatic(...)
调用
MockCreator.mock(...)
。此方法注册一个Runnable,它将
在每次测试后 执行

MockRepository.addAfterMethodRunner(new MockitoStateCleaner());

这个可运行的清理 Mockito内部状态

private static class MockitoStateCleaner implements Runnable {    public void run() {        clearMockProgress();        clearConfiguration();    }    private void clearMockProgress() {        clearThreadLocalIn(ThreadSafeMockingProgress.class);    }    private void clearConfiguration() {        clearThreadLocalIn(GlobalConfiguration.class);    }    private void clearThreadLocalIn(Class<?> cls) {        Whitebox.getInternalState(cls, ThreadLocal.class).set(null);        final Class<?> clazz = ClassLoaderUtil.loadClass(cls, ClassLoader.getSystemClassLoader());        Whitebox.getInternalState(clazz, ThreadLocal.class).set(null);    }}

因此,您应该在每次测试之前执行setUp。

@Beforepublic void setUp() {    PowerMockito.mockStatic(A.class);    PowerMockito.when(A.getVal()).thenReturn("X");    b = PowerMockito.mock(B.class);    PowerMockito.when(b.getVal()).thenReturn("Y");}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5130786.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存