使用 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
阅读全文 >>