Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建时,为什么在Mockito.when内调用方法?_Java_Junit_Mockito - Fatal编程技术网

Java 创建时,为什么在Mockito.when内调用方法?

Java 创建时,为什么在Mockito.when内调用方法?,java,junit,mockito,Java,Junit,Mockito,方法DefaultMessageListenerContainer.isRunning()在Mockito.doReturn(..).when()声明中调用。为什么? @Test public void isRunning_validParams_isOk() { DefaultMessageListenerContainer mockMessageListenerContainer = Mockito.mock(DefaultMessageListenerContainer.class

方法DefaultMessageListenerContainer.isRunning()在Mockito.doReturn(..).when()声明中调用。为什么?

@Test
public void isRunning_validParams_isOk() {
    DefaultMessageListenerContainer mockMessageListenerContainer = Mockito.mock(DefaultMessageListenerContainer.class);
    List<DefaultMessageListenerContainer> internalState = Arrays.asList();
    Whitebox.setInternalState(this.theService, "jmsListeners", internalState);
    try {
        Mockito
            .doReturn(true)
            .doReturn(false)
            .when(mockMessageListenerContainer.isRunning());
    } catch (Exception e) {
        e.printStackTrace();
        Assert.fail("unexpected exception");
    }
    internalState.add(mockMessageListenerContainer);
    boolean result1 = this.theService.isRunning();
    Assert.assertTrue(result1);
    boolean result2 = this.theService.isRunning();
    Assert.assertFalse(result2);
}
@测试
公共无效正在运行_validParams_isOk(){
DefaultMessageListenerContainer mockMessageListenerContainer=Mockito.mock(DefaultMessageListenerContainer.class);
List internalState=Arrays.asList();
setInternalState(this.theService,“jmsListeners”,internalState);
试一试{
莫基托
doReturn先生(对)
doReturn先生(错)
.when(mockMessageListenerContainer.isRunning());
}捕获(例外e){
e、 printStackTrace();
Assert.fail(“意外异常”);
}
添加(mockMessageListenerContainer);
布尔结果1=this.theService.isRunning();
Assert.assertTrue(result1);
布尔结果2=this.theService.isRunning();
Assert.assertFalse(result2);
}

您的代码应更改为:

.doReturn(false)
.when(mockMessageListenerContainer).isRunning();


当使用
doReturn
时,
方法需要一个模拟对象时,

中的更多信息问题可能与“isRunning”方法声明为final这一事实有关,更改如下:{Mockito.doReturn(false).When(mockMessageListenerContainer).isRunning()}catch(异常e){e.printStackTrace();Assert.fail(“意外异常”);},错误一直存在:org.springframework.jms.listener.AbstractJmsListeningContainer.isRunning(AbstractJmsListeningContainer.java:347)处的java.lang.NullPointerException位于com…..正在运行有效参数(returnerjmsservicebist.java:94)