Mockito访问方法的结果



是否可以将方法的结果作为另一个模拟的返回值?

我有类似的东西:

Order savedOrder = orderDataService.save(order);
try{
    savedOrder = orderDataService.findById(savedOrder.getId());
} catch (SomeException e) {
...
}

,由于我在保存方法中有一些业务逻辑,所以我不想创建一个模拟的结果,而是要访问它并将其用于查找方法。

我认为您可以使用Spy和部分模拟。在一般情况下,假设这样的课程:

public class MockedBean {
    public String mockedMethod() {
        return "should have been mocked!";
    }
    public String notMockedMethod() {
        return "should NOT have been mocked!";
    }
}

yuu可以进行部分模拟:

@Test
public void test() {
    MockedBean mb = new MockedBean();
    MockedBean spy = Mockito.spy(mb);
    when(spy.mockedMethod()).thenReturn("THE MOCKED VALUE");
    log.info("{}", spy.mockedMethod());
    log.info("{}", spy.notMockedMethod());
}

这将导致输出,例如:

20:32:14.180 [主要] info org.example.mockito.partialmock.partialmock-模拟的值
20:32:14.183 [主要] info org.example.mockito.partialmock.partialmock-不应嘲笑!

相关内容

  • 没有找到相关文章

最新更新