gpt4 book ai didi

java - Mockito - 当那时返回

转载 作者:行者123 更新时间:2023-12-02 12:19:04 25 4
gpt4 key购买 nike

我是 Mockito 库的新手,我无法理解以下语法:在我定义的测试之前 -

when(CLASS.FUNCTION(PARAMETERS)).thenReturn(RETURN_VALUE)

实际测试是 -

assertSame(RETURN_VALUE, CLASS.FUNCTION(PARAMETERS))

我不是只是将第一行代码(when...thenReturn)的函数返回值设置为RETURN_VALUE吗?如果答案是肯定的,那么当然 assertSame 将为 true 并且测试将通过,我在这里缺少什么?

最佳答案

Mockito(实际上是任何形式的模拟)的目的不是模拟您正在检查的代码,而是用模拟代码替换外部依赖项。

例如,假设您有这个简单的界面:

public interface ValueGenerator {
int getValue();
}

这是使用它的代码:

public class Incrementor {
public int increment(ValueGenerator vg) {
return vg.getValue() + 1;
}
}

您想要测试您的 Incrementor 逻辑,而不依赖于 ValueGenerator 的任何特定实现。这就是 Mockito 发挥作用的地方:

// Mock the dependencies:
ValueGenerator vgMock = Mockito.mock(ValueGenerator.class);
when(vgMock.getValue()).thenReturn(7);

// Test your code:
Incrementor inc = new Incrementor();
assertEquals(8, inc.increment(vgMock));

关于java - Mockito - 当那时返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45222786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com