Java 测试cassandra会话。状态-如何模拟

Java 测试cassandra会话。状态-如何模拟,java,unit-testing,cassandra,Java,Unit Testing,Cassandra,我在看这个函数: Session.State state = session.getState(); if(state.getConnectedHosts().size() == 0) return Result.unhealthy("No cassandra connections"); else return Result.healthy(); 我想在这里测试各种条件,但我不清楚如何模拟/模拟/处理Session.State值。我可以模拟会话,但另一个是一个接口-在运行时,它是一

我在看这个函数:

Session.State state = session.getState();
if(state.getConnectedHosts().size() == 0)
    return  Result.unhealthy("No cassandra connections");
else return Result.healthy();
我想在这里测试各种条件,但我不清楚如何模拟/模拟/处理Session.State值。我可以模拟会话,但另一个是一个接口-在运行时,它是一个会话管理器,缺少公共访问权限

有没有办法(权力)嘲笑这一点?另一种方法来测试这一点?

使用,以下方法对我有效:

import static org.mockito.Mockito.*;

Session session = mock(Session.class);        
Session.State state = mock(Session.State.class);
when(session.getState()).thenReturn(state);
when(state.getConnectedHosts()).thenReturn(Collections.<Host>emptyList());
import static org.mockito.mockito.*;
会话=模拟(Session.class);
Session.State=mock(Session.State.class);
当(session.getState())。然后返回(state);
when(state.getConnectedHosts()).thenReturn(Collections.emptyList());

如果可以模拟session.getState,则应该能够从中返回session.State。。。