org.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.addAnswersForStubbing 处的 java.lang.NullPointerException

use*_*934 2 mockito powermockito

例外

java.lang.NullPointerException 
    at org.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.addAnswersForStubbing(PowerMockitoStubberImpl.java:67)
    at org.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.when(PowerMockitoStubberImpl.java:42)
    at org.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.when(PowerMockitoStubberImpl.java:105)
    at us.ny.state.ij.safeact.ask.facade.AmmoSellerKeeperFacadeBeanTest.setUp(FacadeBeanTest.java:84)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at 
Run Code Online (Sandbox Code Playgroud)

要模拟的代码

java.lang.NullPointerException 
    at org.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.addAnswersForStubbing(PowerMockitoStubberImpl.java:67)
    at org.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.when(PowerMockitoStubberImpl.java:42)
    at org.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.when(PowerMockitoStubberImpl.java:105)
    at us.ny.state.ij.safeact.ask.facade.AmmoSellerKeeperFacadeBeanTest.setUp(FacadeBeanTest.java:84)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at 
Run Code Online (Sandbox Code Playgroud)

测试代码

BusinessServiceFactory serviceFactory = BusinessServiceFactory.getInstance();
RegBusinessServiceImpl regCreateService = 
    serviceFactory.getRegBusinessService(adrEntityManager);
Run Code Online (Sandbox Code Playgroud)

我不明白为什么我会看到异常。我将不胜感激任何建议。

sab*_*bir 5

供参考:

解决方案是使用PowerMockito.mock()而不是Mockito.mock()


你应该做

AmmoSellerRegBusinessServiceImpl  mockRegBusinessServiceImpl 
        = PowerMockito.mock(AmmoSellerRegBusinessServiceImpl.class);
Run Code Online (Sandbox Code Playgroud)

代替

AmmoSellerRegBusinessServiceImpl  mockRegBusinessServiceImpl 
            = mock(AmmoSellerRegBusinessServiceImpl.class);
// assuming your are using Mockito.mock()
// correct me if I am wrong
Run Code Online (Sandbox Code Playgroud)

我也面临同样的问题。这个解决方案对我来说是解决方案。希望能帮助到你。