使用 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
閱讀全文 >>