Mockito 2 参数匹配器(moc,mockito,配,编程语言)

时间:2024-04-28 00:16:57 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

    Mockito+2+%E5%8F%82%E6%95%B0%E5%8C%B9%E9%85%8D%E5%99%A8

Mockito 通过使用 equals() 这种自然的 Java 样式来校验参数值。有时候,当需要有其他一些灵活性的时候,你可能会要求使用参数匹配(argument matchers)。

请参考下面的代码:

参数匹配运行进行灵活校验或者打标。

请访问 https://static.javadoc.io/org.mockito/mockito-core/3.0.0/org/mockito/hamcrest/MockitoHamcrest.html 链接来查看更多有关自定义参数匹配器/hamcrest matchers(custom argument matchers/hamcrest matchers)的内建参数匹配器和示例。

更多有关 自定义参数匹配器(custom argument matchers)的使用,请参考 ArgumentMatcher 类的 API 文档。

在使用复杂参数匹配器的时候需要谨慎。尝试给一个干净并且简单的测试的时候,尽量选择自然的参数匹配使用的是  equals() 对比相对偶然使用  anyX() 来说。有时候可能对你的代码进行一些重构来允许  equals() 进行匹配,或者可以实现(implement)equals()方法来帮助进行测试。

同时,请阅读 Capturing arguments for further assertions (Since 1.8.0) 页面中的内容,或者参考 ArgumentCaptor 类的 API。

ArgumentCaptor 是有关参数匹配器的是特殊实现,能够为后面的对比(assertions)捕获参数变量。

如果你现在正在使用参数匹配器,所有参数(all arguments)都必须由 matches 提供。

下面的示例代码显示校验,但是一些将会应用到打标中。

像 anyObject()eq() Matcher 方法不会返回 matchers。

在内部,他们将会在堆栈(stack)中记录一个 matcher 然后返回一个虚假的值(通常为 null)。

这种实现方式是基于 Java 编译器中有关静态类型的安全性问题而考虑的,从而带来的结果是你不能在 verified/stubbed 方法外部使用 anyObject()eq()

 

https://www.cwiki.us/display/MockitoZH/Argument+matchers


本文:Mockito 2 参数匹配器的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:各种排序的复杂度下一篇:

7 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18