有什么区别:
verify(mock, times(1)).myMethod(Matchers.isA(String.class));
verify(mock, times(1)).myMethod(Matchers.anyString());
Run Code Online (Sandbox Code Playgroud)
来自Mockito图书馆?两者都通过我的方法,我想知道哪一个"更好"使用.
Jef*_*ica 22
isA检查该类是否与期望的类匹配.在1.x的的Mockito, ,any,anyObject和anyString忽略的说法完全包括其类型,尽管any可以采取类参数,并anyString指定它的名字.
通常,除非您有理由防止传入不兼容的参数,否则您可能会坚持使用any和anyString.Mockito风格更喜欢灵活的测试用例,这意味着只验证您明确检查的内容,并故意允许其他所有内容都未指定.
更新: Mockito提交者Brice提供了一些历史背景和未来方向:
对于历史参考,
any是一个简写别名anything,当时API强制一个人进行转换,贡献者和/或委托者考虑将类作为参数传递以避免这种转换,而不改变此API的语义.然而,这种变化最终改变了人们认为这个API正在做的事情.这将在mockito 2+中修复
| 归档时间: |
|
| 查看次数: |
9897 次 |
| 最近记录: |