java - 使用 EasyMock 和 Mockito 模拟 void 方法

标签 java unit-testing mockito easymock

你好,我想知道模拟 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/

相关文章:

java - 如果语句没有按预期工作

Swift 模拟类

c# - 在 C# 测试中出现两个 string[] 和 AreEqual 的错误

java - 使用 Gradle 安装 Mockito

unit-testing - 在mockito中验证的想法是什么以及我什么时候应该使用它

java - 带有左连接提取的 Jpa namedquery

java - org.h2.jdbc.JdbcSQLException : Table "PACCHETTIVISITETURISTICHE" not found; SQL statement:

java - 使用正则表达式查找特定范围

java - JUnitParams - 在测试之前执行单独的方法

scala - 在scala中使用mockito模拟方法返回java.util.List