你好,我想知道模拟 void 方法的最佳方法是什么,例如:我在测试中有一个 PersonManager,然后我有一个被模拟的 dao。
class PersonManager {
PersonDao dao...
PersonManager(PersonDao dao)...
Preson find(String person)...
void delete(String person)...
}
class PersonManagerTest {
Map<String, Person> persons ..... = "person1", "person2", "person3";
PersonDao mock...
PersonManager manager = new PersonManager(mock);
//easy one
@Test public void shouldReturnExistingPerson() {
expect(mock.find("person1").andReturn(persons.get(0));
Person result = manager.find("person1");
// replay and verify logic
}
//but what should I do here?
@Test public void shouldDeleteExistingPerson() {
//should I remove a person from testing Map holding test data? or what am I doing wrong
}
}
所以测试有返回值的方法很简单,但是如何设置无效方法呢?感谢您的建议,也欢迎使用 Mcokito 示例。
最佳答案
使用 easy mock,您不需要将 void 函数包装在 expect() 周围。您只需要执行以下操作:
obj = createMock(...)
obj.someVoidMethod();
replay(obj);
...
verify(obj);
关于java - 使用 EasyMock 和 Mockito 模拟 void 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5951535/