【发布时间】:2015-12-16 14:51:44
【问题描述】:
是否可以从另一个模拟方法调用某些方法,而不是使用 Mockito 或 PowerMock 返回值?
这里是一个明确的例子:
我在生产类中有一个查询:
session.createQuery("update clause")
.setParameter("")
.executeUpdate();
session.flush();
在我的测试课中,我这样模拟它:
Query q = mock(Query.class, "q");
when(session.createQuery("update lalala")).thenReturn(q);
when(q.executeUpdate()).thenReturn(something);
现在我需要调用位于我的测试类中的 void 方法来模拟数据库行为,而不是执行 thenReturn(something)。
即
public void doSomething()
{
// do smth
}
所以在我的测试中,当 q.executeUpdate 被调用时,doSomething() 也会被调用。
我搜索了任何可能的想法,但似乎无法弄清楚。
【问题讨论】:
标签: java unit-testing mockito powermock powermockito