【发布时间】:2015-11-26 09:23:17
【问题描述】:
我正在测试一个调用相同方法 (db.getData()) 两次的方法。但我必须返回两个不同的值。
Mockito.when(db.someMethod()).thenReturn(valueOne).thenReturn(valueTwo);
然后我尝试了多个thenReturn()。
不幸的是,我在第一个和第二个 db.getData() 方法调用中只得到了 valueTwo。
【问题讨论】:
-
如果你想让它为不同的调用返回两个不同的值,你可以这样做: Mockito.when(db.someMethod()).thenReturn(valueOne); db.someMethod(); Mockito.when(db.someMethod()).thenReturn(valueTwo); db.someMethod();
-
@PiotrPytlik 不正确,请参阅:docs.mockito.googlecode.com/hg/org/mockito/stubbing/…:“您可以为连续的方法调用设置不同的行为。最后的存根(例如:thenReturn("foo"))确定进一步连续调用的行为.".
-
@Adriaan 抱歉,又跑题了。是的,我错了……
标签: java unit-testing mocking mockito