java - Mockito.lenient 未返回预期结果

标签 java junit mockito

@RunWith(MockitoJUnitRunner.class)
public class TestMyStuff{
    @Mock
    private Worker worker;

    @Before
    public void setup(){
        Mockito.lenient()
                .when(worker.doWork("some stuff", "some other stuff", new Date()))
                .thenReturn(true);
        Mockito.lenient()
                .doReturn(true)
                .when(worker).doWork("some stuff", "some other stuff", new Date());
    }

    @Test
    public void test(){
        //quick test to see if mock works.
        final boolean isDone = worker.doWork("zzz", "qwerty);
        System.out.println("isDone: " + isDone);//i want isDone to be true
    }
}

Mockito.lenient() 方法似乎不起作用,因为它没有返回 true。如何使 Worker.#doWork() 方法返回 true 无论输入如何?

最佳答案

你可以使用这个: when(Worker.doWork(anyString(),...).thenReturn(true) 但是,我认为您发布的代码有一些问题。 “doWork”方法看起来像是采用两个 String 和一个 Date 对象。在测试方法中,您应该向“doWork”提供正确的输入以查看结果。

关于java - Mockito.lenient 未返回预期结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54359645/

相关文章:

java - MapReduce 单元测试无法模拟 DistributedCache.getLocalCacheFiles

java - Junit:如何使用命令行从项目运行测试

java - Mockito 抛出 WrongTypeOfReturnValue

java - 如何在下面的代码中模拟遗留对象?

java - 如何合并 2 个或更多 lucene 索引并避免最终索引中出现重复值?

java - Spring:将String List的所有值注入(inject)bean

java - 如何使用 JSP 将表单数据解析到客户端 Java 类

java - 带 header 的 RSA 私钥和 OPENSSH 私钥有什么区别?

junit - 如何忽略 Java 核心断言的覆盖范围,Eclipse Eclemma

java - 如何使用 Mockito 正确模拟每个循环?