Mockito 的 anyString(), any(Foo.class) 等不能匹配 null 值

使用 Mockito Mock 方法式,一直以爲可以用 anyString(), any(Foo.class) 等匹配 null 值,其實不行,null 值必須顯式的用 null, 或 eq(null) 來匹配。anyString(), anyInt() 等只能匹配非 null 值,查看它們的返回值實際是 "" 和 0 等, 而更爲特別的是 any(Foo.class) 看到的是 null, 仍然不能匹配 null 值。進一步用 Mockito.mockingDetails(mock).printInvocations() 打印出的內容,anyString(), any(Foo.class) 都會顯示爲 null 值。

說的有點羅嗦,看下面的例子, 被測試類 UserDao,sql 和 sqlArguments 由各自的 setter 方法來控制,默認它們都爲 null 閱讀全文 >>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章