看起来像hamcrest org.hamcrest.Matchers
类与org.hamcrest.CoreMatchers
非常相似(尽管它看起来像Matchers
有更多)。为什么我会选择使用CoreMatchers
(除了它看起来类稍小)以及为什么这两个类如此相似?hamcrest-library Matcher与hamcrest-core CoreMatchers之间的区别
49
A
回答
37
Hamcrest匹配器分为几个模块。 “核心”包括构建其他匹配者所需的最基本的匹配器和抽象类。 org.hamcrest.CoreMatchers
包含这些匹配器的工厂方法。其他匹配器位于“库”模块中,它们按照它们匹配的对象类型进行分组,并且是可选的。 org.hamcrest.Matchers
包括两组匹配器。
你应该使用哪一个?静态地从后者导入所有内容,没有任何问题。也许编译时间可能会稍微长一些,但这对我来说从来都不是问题。除了JUnit进口外,我还将其列在单元测试的顶部:
import static org.hamcrest.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
这给出了测试方法中最好的可读性。
9
如果您使用的Mockito很多(像我一样),你可能会做:
import org.mockito.Mockito;
或
static import org.mockito.Mockito.*;
而且由于Mockito
类扩展的Mockito的Matchers
类,那么你就可以结束Matchers类或它们的静态方法之间存在冲突。拥有CoreMatchers允许我在与Mockito相同的类中使用JUnit派生的CoreMatchers,而无需在使用时对其进行全面限定。
相关问题
- 1. Pattern类和Matcher类之间的区别
- 2. “或”与“||”之间的区别?
- 3. ~~与Math.floor之间的区别()
- 4. PAM与Metis分区之间的区别
- 5. 与别名之间的区别
- 6. 时间()与stime()之间的区别
- 7. 关注与责任之间的区别(即SRP和SoC之间的区别)?
- 8. Mockito's Matcher vs Hamcrest Matcher?
- 9. 命令与ScriptBlock之间的区别Powershell
- 10. justify-content与align-content之间的区别
- 11. 层次与层次之间的区别
- 12. javax.servlet-api.jar与servlet-api.jar之间的区别
- 13. Python:time.time()与time.clock()之间的显着区别?
- 14. add_filter与add_action之间的区别
- 15. 并行流与CompletableFuture之间的区别
- 16. Clojure中-toString与.toString之间的区别
- 17. express.response.status()与response.sendStatus()之间的区别
- 18. 值与绑定之间的区别
- 19. 继承ApiController与IHttpController之间的区别
- 20. StratifiedKFold与train_test_split分层之间的区别
- 21. 会员与物业之间的区别?
- 22. ER图与EER图之间的区别
- 23. 查找与关系之间的区别
- 24. RLMRealm与Realm之间的区别
- 25. Composer.phar与|之间的区别和||
- 26. iOS中1000与1000.0之间的区别
- 27. SCORM 1.2与SCORM 2004之间的区别
- 28. CommonsHTTPTransportSender与org.apache.synapse.transport.passthru.PassThroughHttpSSLSender之间的区别
- 29. Linux与Solaris之间的awk区别
- 30. OnListItemClick与onItemClickListener之间的区别