小编Vin*_*eet的帖子

SSLContext 模拟未按预期运行

我有以下简单的类: import javax.net.ssl.SSLContext;

public class AClass {
    public void someMethod() throws Exception {
        SSLContext context = SSLContext.getInstance("SSL");
        context.init(null, null, null);
    }
}
Run Code Online (Sandbox Code Playgroud)

及其 JUnit: import javax.net.ssl.SSLContext;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;

@RunWith(PowerMockRunner.class)
@PrepareForTest({ SSLContext.class })
public class ATest {
    @Test
    public void testSomeMethod() throws Exception {
        PowerMockito.mockStatic(SSLContext.class);
        SSLContext context = Mockito.mock(SSLContext.class);
        Mockito.when(context.getInstance("SSL")).thenReturn(context);
        new AClass().someMethod();
    }
}
Run Code Online (Sandbox Code Playgroud)

JUnit 失败并显示以下堆栈跟踪:

java.lang.NullPointerException
    at javax.net.ssl.SSLContext.init(Unknown Source)
    at random.AClass.someMethod(AClass.java:8)
    at random.ATest.testSomeMethod(ATest.java:20)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at …
Run Code Online (Sandbox Code Playgroud)

java junit mockito powermock powermockito

2
推荐指数
1
解决办法
7142
查看次数

标签 统计

java ×1

junit ×1

mockito ×1

powermock ×1

powermockito ×1