Java Mockito Mock不返回定义的值

Java Mockito Mock不返回定义的值,java,mockito,Java,Mockito,我当时正在为Facebook API包装器编写一些测试代码,但是,Mockito似乎并没有按照预期工作: java.lang.AssertionError: expected:<200> but was:<400> 在@Before中使用init MockitoAnnotations.initMocks(this); 测试失败的原因是: @Test public void testSchedulerWithInvalidEntry() { Generi

我当时正在为Facebook API包装器编写一些测试代码,但是,Mockito似乎并没有按照预期工作:

java.lang.AssertionError: expected:<200> but was:<400>
在@Before中使用init

MockitoAnnotations.initMocks(this);
测试失败的原因是:

    @Test
public void testSchedulerWithInvalidEntry() {
    GenericResponseWrapper genericResponseWrapper = new GenericResponseWrapper(200, null);
    Mockito.when(facebookAPIWrapper.createNewPost("invalidToken", "123", "invalid")).thenReturn(genericResponseWrapper);
    FacebookAPIWrapper test = new FacebookAPIWrapper();
    GenericResponseWrapper testAnswer = test.createNewPost("invalidToken", "123", "invalid");
    assertEquals(200, testAnswer.getStatusCode());
}
我猜我对莫基托的理解是错误的。Mockito不应该覆盖包装器的实例吗

我也试过一个间谍,没用


安装的Mockito是版本2.15.0中的maven group Mockito核心。

问题是您正在模拟一个单独的对象

@Mock
private FacebookAPIWrapper facebookAPIWrapper;
如果您使用的是
test
对象而不是模拟的
facebookAPIWrapper
,请检查使用模拟的
facebookAPIWrapper
对象是否能按预期工作

@Test
public void testSchedulerWithInvalidEntry() {
    GenericResponseWrapper genericResponseWrapper = new GenericResponseWrapper(200, null);
    Mockito.when(facebookAPIWrapper.createNewPost("invalidToken", "123", "invalid")).thenReturn(genericResponseWrapper);
    GenericResponseWrapper testAnswer = facebookAPIWrapper.createNewPost("invalidToken", "123", "invalid");
    assertEquals(200, testAnswer.getStatusCode());
}

问题是你在模仿一个单独的对象

@Mock
private FacebookAPIWrapper facebookAPIWrapper;
如果您使用的是
test
对象而不是模拟的
facebookAPIWrapper
,请检查使用模拟的
facebookAPIWrapper
对象是否能按预期工作

@Test
public void testSchedulerWithInvalidEntry() {
    GenericResponseWrapper genericResponseWrapper = new GenericResponseWrapper(200, null);
    Mockito.when(facebookAPIWrapper.createNewPost("invalidToken", "123", "invalid")).thenReturn(genericResponseWrapper);
    GenericResponseWrapper testAnswer = facebookAPIWrapper.createNewPost("invalidToken", "123", "invalid");
    assertEquals(200, testAnswer.getStatusCode());
}

谢谢这真是我的误解:)谢谢!这对我来说真是一个误会:)