0

モック オブジェクトのマップをモックするのに問題があります。

モッキートを使用しています。

これが私の機能です:

@Override
protected void doGet(SlingHttpServletRequest request,
    SlingHttpServletResponse response) throws ServletException, IOException {
    try {
        Session session = request.getResourceResolver().adaptTo(Session.class);
            PrintWriter writer = response.getWriter();
            boolean testsPassed = isValid(agentMgr.getAgents().values()) && testAgents(agentMgr.getAgents(), session);
            if (testsPassed) {
                writer.write(successOutput);
            } else {
            writer.write(failureOutput);
    }
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

private boolean isValid(Map<String, Agent> agents) {
for (Map.Entry<String, Agent> agentEntry : agents.entrySet()) {
    if (agentEntry != null) {
        Agent agent = agentEntry.getValue();
            boolean isValid = agent.isValid();
            String id = agent.getId();
            // regex match string id
            if (id.matches(regex) || id.equalsIgnoreCase(goldId)) {
                if (agent != null) {
                    if (!agent.isValid()) {
                        return false;
                    }
                }
            }
        }
    }
    return true;
}

私は次のようにモックオブジェクトを組み立てようとしました:

when(passAgent1.isValid()).thenReturn(true);
when(passAgent1.getId()).thenReturn("publish");
Map<String, Agent> mockAgents = new HashMap<String, Agent>();
mockAgents.put("publish", passAgent1);
mockAgents.put("i-12345678", passAgent2);
when(agentMgr.getAgents()).thenReturn(mockAgents);

実行すると、Agent オブジェクトが Agent$$EnhancerWithMockitoByGLIB$$738eb07c として返されるように見えます

isValid と getId のモック関数は両方とも null を返すため、テストは失敗します。

アドバイスをいただければ幸いです。

4

0 に答える 0