的Mockito。模拟单个方法抛出异常

时间:2015-03-13 11:58:36

标签: java junit mockito

我有一个方法impersonate的类,它会抛出UnsupportedOperationException。所以我想只模仿这种方法。我知道我可以使用Mockito.spy

Session session = Mockito.spy(new Session("admin", "adminSpace"));
Session imperSession = new Session("test", "testSpace");
when(session.impersonate(any(Credentials.class))).thenReturn(imperSession);

但问题是Mockito真的调用impersonateUnsupportedOperationException会抛出执行。那我该怎么办?

1 个答案:

答案 0 :(得分:3)

如果你必须确保mockito在被嘲笑之前没有调用你的方法,你必须使用Mockito.doXXX()方法而不是Mockito.when()

在您的情况下,代码应如下所示:

doReturn(imperSession).when(session).impersonate(any(Credentials.class));