莫基托。抛出异常的模拟单一方法

Mockito. Mock single method which throws an exception

我有一个 class 方法 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 真的调用 impersonate 并且 UnsupportedOperationException 抛出执行。那我可以在这里做什么?

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

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

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