繁体   English   中英

Mockito - 如何模拟平等?

[英]Mockito - How to mock equality?

我有以下需要模拟的条件语句。 是否可以使用 mockito 来模拟它?

if (events.size() == rowsAffected) {
// app logic
}

这里的eventsList<Map<String, Object>>类型,将从 function 返回。

rowsAffectedint类型,它也将由方法返回。

List<Map<String, Object>> events = service.getEvents();
int rowsAffected = service.updateEventStatus(events);

当您需要模拟具有自定义行为的方法时,可以使用answer 例子:

public class MockMe {
    public String hello(String name) {
        return "Hello " + name;
    }
}

@Test
public void testCase() {
    List<Map<String, Object>> events = service.getEvents();
    int rowsAffected = service.updateEventStatus(events);
    Answer<String> myMockedAnswer = invocation -> {
        if (events.size() == rowsAffected) {
            return "mock good";
        }
        return "mock bad";
    };
    MockMe mockMe = mock(mockMe);
    doAnswer(myMockedAnswer)
        .when(mockMe).hello(anyString());
    assertEquals("mock good", mockMe.hello("anything"));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM