Java Mockito、JUnit、Hamcrest、版本控制
默认情况下,Hamcrest的所需版本适用于:Java Mockito、JUnit、Hamcrest、版本控制,java,junit,dependencies,mockito,hamcrest,Java,Junit,Dependencies,Mockito,Hamcrest,默认情况下,Hamcrest的所需版本适用于: JUnit4.11 汉克雷斯特1.3 Mockito核心1.9.5 汉克雷斯特1.1 Hamcrest 1.1和1.3之间的API变化不明显。目前,我的测试用例试图在Hamcrest 1.1中运行JUnit 4.11,但出于类似的原因,我怀疑尝试在Hamcrest 1.3中使用Mockito core 1.9.5是错误的 怎么办 将Hamcrest 1.1与最新的JUnit和Mockito一起使用 将Hamcrest 1.3与最新的JU
- JUnit4.11
- 汉克雷斯特1.3
- Mockito核心1.9.5
- 汉克雷斯特1.1
- 我现在真的没有时间
更新2015-06-12:Mockito 1.10.19和2.0.13-beta版仍然使用Hamcrest 1.1查看Mockito文档,我认为选项2是推荐的方式(使用Mockito核心工件)。更新日期:2015年7月29日@durron597:这个极好的答案在2013年是正确的,然而,由于Mockito的更新,它已经过时。 我在许多Maven项目中使用了最新的JUnit和Mockito核心依赖项以及hamcrest 1.3。到目前为止,没有人报告这方面有任何问题。因此,如果这对您的测试有效,那么这三个测试都将使用最新版本。只需确保使用mockito核心,而不是全部 所以我建议使用选项2,以获得更新版本的所有好处。如果你真的怀疑任何事情都可能出错,请使用最安全的选项4。当然,你可以选择第二种选择,在不久的将来,如果出现任何问题,你可以选择第二种选择。或者从那时起,一个新的mockito已经解决了这个问题
注意:mockito core不会出现此问题。这是Maven建议的解决方案:
org.hamcrest
汉克雷斯特酒店
1.3
朱尼特
朱尼特
4.11
汉克雷斯特岩芯
org.hamcrest
org.mockito
莫基托磁芯
1.9.5
org.hamcrest
汉克雷斯特岩芯
org.hamcrest
汉克雷斯特酒店
测试
朱尼特
朱尼特
测试
org.mockito
莫基托磁芯
测试
更新:截至2015年6月30日,Mockito的最新版本在内部使用Hamcrest 1.3。
我不会改变被接受的答案,因为mszalbach应该保留15个代表,但这应该是新的规范答案我已经使用mockito core,我更新了我的帖子以反映this@HansWesterbeek如果您不习惯使用Mockito 2(因为它是测试版),您可以始终使用公认的答案。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<exclusions>
<exclusion>
<artifactId>hamcrest-core</artifactId>
<groupId>org.hamcrest</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>1.9.5</version>
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
</dependencies>