gpt4 book ai didi

java - Mockito when().thenReturn() 不能正常工作

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:28:10 27 4
gpt4 key购买 nike

我有一个具有 2 个函数的 A 类:函数 a() 返回一个随机数。调用 a() 并返回返回值的函数 b()。

在测试中我写了这个:

A test = Mockito.mock(A.class)
Mockito.when(test.a()).thenReturn(35)
assertEquals(35,test.a())
assertEquals(35,test.b())

测试在第二个断言处失败。有谁知道为什么吗?

要清楚-这不是我的真实代码,而是解释我的问题的简单代码

最佳答案

由于 A 类是模拟的,所有方法调用都不会转到实际对象。这就是你的第二个断言失败的原因(我猜它可能返回了 0)。

解决方法:

你可以这样做

when(test.b()).thenCallRealMethod();

否则你可以像spy一样

A test = spy(new A());
Mockito.when(test.a()).thenReturn(35);
assertEquals(35,test.a());
assertEquals(35,test.b());

关于java - Mockito when().thenReturn() 不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33125769/

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