EasyMock.expectLastCall().anyTimes() 等价物的 Mockito 验证是什么?

问题描述

将一些测试从 EasyMock 迁移到 Mockito。

EasyMock 代码如下:

Some mock = EasyMock.createMock(Some.class);
mock.someMethod(argMatcher);
EasyMock.expectLastCall().anyTimes();
EasyMock.replay(mock);

如何使用 Mockito 进行等效(或类似)的模拟验证?

解决方法

我会写一个这样的测试:

Some mock = Mockito.mock(Some.class);
Mockito.when(mock.someMethod(argMatcher)).thenReturn(aReturnObject);
yourTestedObject.setSome(mock)

yourTestedObject.someTestedMethodWhichUseSomeClass();

Mockito.verify(mock,Mockito.atLeastOnce()).someMethod(argMatcher);

对于 void 方法:

Some mock = Mockito.mock(Some.class);
Mockito.doNothing().when(mock).someMethod(argMatcher);
yourTestedObject.setSome(mock);

yourTestedObject.someTestMethodWhichUseSomeClass();

Mockito.verify(mock,Mockito.atLeastOnce()).someMethod(argMatcher);