Mockito не может издеваться над этим классом: class javax. net .ssl.SSLContext - PullRequest
0 голосов
/ 03 августа 2020

У меня есть Android Проект, где я пишу какой-то UT. Но в этом проекте я не могу издеваться над SSLContext и KeyManagerFactory. Все время у меня одна и та же ошибка. Я пробую другую версию mockito, но это не помогает. Основная проблема в том, что один и тот же образец кода работает в другом проекте, и я не знаю, в чем может быть проблема. Кто-нибудь может помочь с этим?

Caused by: org.mockito.exceptions.base.MockitoException: 
Mockito cannot mock this class: class javax.net.ssl.SSLContext.

Mockito can only mock non-private & non-final classes.
If you're not sure why you're getting this error, please report to the mailing list.


Java               : 1.8
JVM vendor name    : JetBrains s.r.o
JVM vendor version : 25.242-b01
JVM name           : OpenJDK 64-Bit Server VM
JVM version        : 1.8.0_242-release-1644-b01
JVM info           : mixed mode
OS name            : Windows 10
OS version         : 10.0

Код того, что я пытаюсь высмеять.

@RunWith(PowerMockRunner.class)
@PrepareForTest({SSLContext.class})
public class SSLTest {
    @Mock
    private SSLContext context;
    @Test
    public void testSomeMethod() throws Exception {
        // create the mock to return by getInstance()

        // mock the static method getInstance() to return above created mock context
        PowerMockito.mockStatic(SSLContext.class);
        Mockito.when(SSLContext.getInstance("SSL")).thenReturn(context);

        // invoke the object under test
        //TODO - add verifications / assertions
    }
}
...