等效于 Mockito any,具有非空约束

2022-09-04 04:06:22

我正在编写最近几天的测试用例。我想知道是否有任何等效的不为空约束?org.mockito.Matchers.any

我的意思是,如果你说:

when(reviewBuilder.saveReviewModel(any())).thenReturn(2L);

然后可以采取任何对象,包括.有没有办法将非空对象传递给使用 Mockito 1.10.19 库的方法?saveReviewModelnull


答案 1

您可以编写将传递此条件的自定义匹配器。

 class NotNullObjects extends ArgumentMatcher<Review> {
     public boolean matches(Object object) {
         return object!=null;
     }
 }

然后用法

when(reviewBuilder.saveReviewModel(argThat(new NotNullObjects()))).thenReturn(2L);

我的一个建议是考虑一些你可以期望的接口作为你的方法的na输入。


答案 2

在 Mockito 1.9.5 中,有 isNotNull()isNotNull(java.lang.Class clazz) 执行空检查。

从版本 2.1.0 开始,anyX() 和 any(SomeType.class) 匹配器拒绝空值并检查类型。请参阅 Mockito 2 中的新增功能页面上的 1.10 段落的不兼容更改


推荐