问题标签 [argument-matcher]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
10794 浏览

spring - mocking resttemplate exchange always returns null

I'm trying to mock a restTemplate.exchange method through mockito but it always returns a null value no matter what i return through mock , even if i throw an exception:

this is the actual code :

mockito code:

Every argument is of type ArgumentMatchers in the exchange mock , mockLovList() returns a list of LOV

it should return whatever i mocked , but it always returns null

0 投票
1 回答
180 浏览

java - 我如何模拟这个参数匹配器?

我正在尝试模拟受保护方法的响应,但出现此错误:

参数匹配器的使用无效!预计 1 个匹配者,记录 2 个:

这是代码:

我的所有项目中只有 1 个 uploadClientBackGroundImage 方法,并接收 2 个参数作为输入

任何建议将不胜感激。

0 投票
0 回答
71 浏览

java - Mockito 参数匹配器中的 NPE 与 doReturn 导致所有其他测试失败

我正在TestNG与我的测试课程一起使用Mockito。我试图创建一个spy对象并用来ArgumentMatchers存根方法调用。在使用参数匹配器时,Mockito 指出要匹配原始类型,我们需要使用anyLong(),或类似的东西anyInt()anyChar()具体取决于所需的参数类型。所以在这种情况下,如果我们使用any()then 会导致NullPointerException.

我尝试了三种方法:

  1. NPE会被抛出,因为我曾经any()匹配一个原始参数
  2. NPE会被抛出,因为我用过throw new NullPointerException()
  3. 没有抛出异常。

以下是我使用的代码。(我用过static imports方法Mockito

观察:

  1. 如果我运行整个班级,那么所有方法都会失败。testThree投掷InvalidUseOfMatchersException
  2. 如果我单独运行第三种方法,那么它将通过。
  3. 如果我评论testOne然后运行整个运行类,那么testTwo将失败并testThree通过。

在我上面的观察中,2 和 3 符合预期。但我不明白为什么testThree观察1也失败了。当我检查控制台时,它表明

如果最后一个匹配器我们返回像 any() 这样的对象,但存根方法签名需要一个原始参数,则此消息可能出现在 NullPointerException 之后。

所以我的问题是为什么一个测试方法会因为以前的测试方法的问题而失败?

(另外,如果我重命名testOnetestZZ使其按字母顺序最后执行,那么testThree在类级别测试运行时将通过。)

0 投票
0 回答
40 浏览

spring - 在 Mockito.when 中使用 Map 中的匹配值

亲爱的,我正在尝试使用 Mockito 根据地图中包含的值创建不同的模拟。根据文档,我创建了两个运行逻辑的不同 ArgumentMatchers

如果我创建模拟如下:

我得到了错误:

我还尝试创建 ArgumentMatchers 的实例,但仍然出现错误。有什么建议么?

谢谢

0 投票
1 回答
22 浏览

mockito - 是否可以使用 ArgumentMatchers 的变量?

假设我有一个看起来像这样的界面。

这里有一个简单的存根,使该some方法只返回给定的数组。

像这样修改上面的代码是否有可能或有意义?

它有相同或等效的效果吗?