gpt4 book ai didi

java - 多个 thenReturn 在 Mockito 中无法正常工作

转载 作者:行者123 更新时间:2023-11-30 08:07:03 32 4
gpt4 key购买 nike

我正在测试调用相同方法 (db.getData()) 两次的方法。但我必须返回两个不同的值。

       Mockito.when(db.someMethod()).thenReturn(valueOne).thenReturn(valueTwo);

然后我尝试了多个thenReturn()

不幸的是,第一次和第二次 db.getData() 方法调用我只得到 valueTwo。

最佳答案

你没有展示很多上下文,但这里有一些想法:

  • 确保 db 确实是一个模拟对象
  • 使用调试器检查 db.someMethod() 是否如您预期的那样被调用了两次
  • 您也可以使用 thenReturn(valueOne, valueTwo); 虽然这应该没有什么区别

我怀疑您的方法被调用了两次以上,并且您错过了第一次调用(它返回 valueOne)并且只查看后续调用(它们都将返回 valueTwo)。

参见 the API :

 //you can set different behavior for consecutive method calls.
//Last stubbing (e.g: thenReturn("foo")) determines the behavior of further consecutive calls.
when(mock.someMethod("some arg"))
.thenThrow(new RuntimeException())
.thenReturn("foo");

关于java - 多个 thenReturn 在 Mockito 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33934722/

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