Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Mockito、JUnit、Hamcrest、版本控制_Java_Junit_Dependencies_Mockito_Hamcrest - Fatal编程技术网

Java Mockito、JUnit、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

默认情况下,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与最新的JUnit和Mockito一起使用
  • 尝试修补Mockito core 1.9.5以使用Hamcrest 1.3
    • 我现在真的没有时间
  • 使用JUnit4.10
  • 其他的

  • 更新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。
    因此,对于那些能够升级到Mockito 2.0的人来说,这个问题已经过时了


    我不会改变被接受的答案,因为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>