:
有什么区别verify(mock, times(1)).myMethod(Matchers.isA(String.class));
verify(mock, times(1)).myMethod(Matchers.anyString());
来自Mockito库?两者都通过我的方法传递,我想知道哪一个是"更好"的使用。
isA
检查类是否与预期类匹配。在Mockito 1.x,any
,anyObject
和anyString
中,即使any
可以使用类参数,并且anyString
在名称中指定它。
通常,除非您有理由保护不兼容的参数,否则您可能会坚持使用any
和anyString
。Mockito样式更喜欢灵活的测试用例,这意味着仅验证您要明确检查的内容,并故意允许其他所有内容未指定。
更新: Mockito Committer Brice提供了一些历史背景和未来方向:
对于历史参考,
中修复any
是anything
的速记别名,当时API迫使人们施放一个人,而贡献者和/或承诺者认为将班级作为避免这种阵容的参数,而无需更改的语义,而不会改变这个API。但是,这种变化最终改变了人们认为这种API正在做的事情。这将在Mockito 2