Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon 是否还有其他与Mockito和Hamcrest很好地集成的图书馆


是否还有其他与Mockito和Hamcrest很好地集成的图书馆


与Mockito和Hamcrest合作时,其他几个库可以增强您的测试功能。这是其中一些库的详细概述:

Junit

** Junit是Java的基本测试框架,与Mockito和Hamcrest都很好地集成在一起。它提供了一组强大的注释和断言,可以与Mockito的嘲讽能力和Hamcrest的匹配者一起使用。尤其是Junit 5提供了改进的功能,例如参数化测试和对嵌套测试的更好支持,使其成为编写全面单元测试的强大工具。

PowerMock

** PowerMock是Mockito(和EasyMock)的扩展,它允许您模拟静态方法,最终类和私人方法,仅使用Mockito就无法使用它们。当处理未考虑可测试性的旧版代码或第三方库时,这特别有用。但是,PowerMock被认为更为复杂,应谨慎使用。

jmock

** jmock是Java的另一个模仿库,可以与Hamcrest一起使用。虽然它的使用不如Mockito广泛使用,但Jmock提供了自己的一组创建模拟对象的功能,并且可以与Hamcrest集成以获得更具表现力的断言。

Easymock

** Easymock是可以与Hamcrest一起使用的另一个流行的模拟框架。与Mockito相比,它提供了一种不同的方法来创建模拟对象,重点是行为驱动的发展(BDD)原理。 Easymock可以与PowerMock结合使用,以获得更高级的模拟功能。

assertj

** ASSERTJ是一个断言库,提供了流利的API用于写作主张。虽然可以独立于Hamcrest使用,但与传统的Junit主张相比,Assertj提供了一种更可读和表达的写作方式。它可以与Mockito一起用于模拟和Hamcrest,以进行更复杂的匹配场景。

##春季测试

如果您正在从事基于春季的应用程序,则Spring Test提供了用于测试弹簧组件的其他工具。它与Mockito很好地集成在一起,可用于模拟特定于春季的组件,例如服务或存储库。虽然不是Mockito的直接替换,但Spring Test提供了针对春季生态系统量身定制的功能。

总而言之,虽然Mockito和Hamcrest构成了单元测试的强大组合,但Junit,PowerMock,Jmock,Easymock,Assertj和Spring Test等库可以根据您的特定需求和项目需求而进一步增强您的测试功能。

引用:
[1] https://www.lambdatest.com/automation-testing-testing-advisor/selenium/methods/org.mockito.hamcrest.mockitohamcrest.mockitohamcrest
[2] https://hamcrest.org/javahamcrest/tutorial
[3] https://www.javacodegeeks.com/2015/11/hamcrest-matchers-tutorial.html
[4] https://www.infoworld.com/article/2257253/junit-5-tutorial-partorial-part-1-unit-testing-with-junit-5-mockito-5-mockito-and-hamcrest.html
[5] https://stackoverflow.com/questions/20441594/mockito-and-hamcrest-how-how-to-verify-verify-collection-collection-argument
[6] https://stackoverflow.com/questions/22697/whats-the-best-mock-framework-for-java
[7] https://tedvinke.wordpress.com/2013/12/17/mixing-junit-hamcrest-and-mockito-mockito-mockito-ecplaining-nosuchmethoderror/
[8] https://github.com/mockito/mockito/issues/324
[9] https://stackoverflow.com/questions/18770943/mockito-junit-hamcrest-versioning
[10] https://hamcrest.org/javahamcrest/distributables