使用Mockito,如何验证某个方法被调用并带有特定参数?
我正在使用Mockito 1.9.0。我将如何验证某个方法仅被调用一次,并且传递给它的字段之一包含某个值?在我的JUnit测试中,
@Beforepublic void setupMainProg() {
// Initialize m_orderSvc, m_opportunitySvc, m_myprojectOrgSvc
...
m_prog = new ProcessOrdersWorker(m_orderSvc, m_opportunitySvc, m_myprojectOrgSvc);
} // setupMainProg
@Test
public void testItAll() throws GeneralSecurityException, IOException {
m_prog.work();
}
方法“工作”调用方法“ m_orderSvc”(传递给对象的参数之一)。“ m_orderSvc”又包含一个成员字段“
m_contractsDao”。我想验证“ m_contractsDao.save”是否被调用一次,并且传递给它的参数包含某个值。
这可能有点令人困惑。让我知道如何澄清我的问题,我很高兴这样做。
回答:
首先,您需要创建一个模拟m_contractsDao并进行设置。假设该类是ContractsDao:
ContractsDao mock_contractsDao = mock(ContractsDao.class);when(mock_contractsDao.save(any(String.class))).thenReturn("Some result");
然后将模拟注入m_orderSvc并调用您的方法。
m_orderSvc.m_contractsDao = mock_contractsDao;m_prog = new ProcessOrdersWorker(m_orderSvc, m_opportunitySvc, m_myprojectOrgSvc);
m_prog.work();
最后,验证是否正确调用了模拟:
verify(mock_contractsDao, times(1)).save("Parameter I'm expecting");
以上是 使用Mockito,如何验证某个方法被调用并带有特定参数? 的全部内容, 来源链接: utcz.com/qa/401437.html