Play 2 - 用于JUnit测试的模拟内部服务通信

时间:2015-05-05 20:14:27

标签: java unit-testing junit playframework-2.0 mockito

@Override
public JsonNode getCities() throws Exception {
    String cityListUrl; // get from properties file
    List<Integer> cityIds = dao.getCities();
    StringBuilder cityIds = new StringBuilder();
    for (Integer cityId : cityIds) {
        cityIds.append(cityId).append(",");
    }
    // gets city names.returns cityId,cityName.
    // How to mock this?
    Promise<JsonNode> jsonPromise = WS
            .url(cityListUrl+ cityIds.toString()).get()
            .map(wsresponse -> {
                return wsresponse.asJson();
            });
    JsonNode node = jsonPromise.get(100000);
    return node;
}

@Test
public void testGetCities() {
    JsonNode cities = Ws.url() call to the API /cities/.
    Assert statement.
}

当作为应用程序运行时,它应该调用其他服务。当以JUnit运行时,应该模拟对其他服务的REST调用。

我只能想象嘲笑一个类的依赖关系。这怎么可以实现?

1 个答案:

答案 0 :(得分:1)

您可以在测试中开始MockServer并调用它。