为什么在使用 Powermock 模拟私有方法时调用真实方法?
Why when mocking a private method using Powermock is calling the real method?
我在 @Before
测试方法中使用这样一行来模拟一个方法:
PowerMockito.when(mockedObject, method(MockedClass.class, "methodIWantToMock")).
withArguments(Matchers.anyString()).thenReturn("AnyExpectedResult");
我也试过这个:
Whitebox.invokeMethod(mockedObject, "methodIWantToMock", "AnyExpectedResult");
我嘲笑它是因为我不想执行它,但是当这些行被执行时,真正的方法被调用,我想避免这种情况。
我不知道它为什么会发生以及如何避免它。
我在网站和互联网上找不到类似这样的问题。
有任何想法吗?
谢谢
刚刚意识到要做到这一点,我需要添加 class 我想在注释 @PrepareForTest
中模拟。
我在 @Before
测试方法中使用这样一行来模拟一个方法:
PowerMockito.when(mockedObject, method(MockedClass.class, "methodIWantToMock")).
withArguments(Matchers.anyString()).thenReturn("AnyExpectedResult");
我也试过这个:
Whitebox.invokeMethod(mockedObject, "methodIWantToMock", "AnyExpectedResult");
我嘲笑它是因为我不想执行它,但是当这些行被执行时,真正的方法被调用,我想避免这种情况。 我不知道它为什么会发生以及如何避免它。 我在网站和互联网上找不到类似这样的问题。 有任何想法吗? 谢谢
刚刚意识到要做到这一点,我需要添加 class 我想在注释 @PrepareForTest
中模拟。