Mockito, JUnit, Hamcrest, Versioning

Por defecto, la versión requerida de Hamcrest para:

  • JUnit 4.11
    • Hamcrest 1.3
  • Mockito-core 1.9.5
    • Hamcrest 1.1

No hubo cambios de API insiginifcantes entre Hamcrest 1.1 y 1.3. Actualmente, mis casos de prueba intentan ejecutar JUnit 4.11 con Hamcrest 1.1, pero estoy razonablemente seguro de que es una mala idea. Por razones similares, sospecho que intentar usar Mockito-core 1.9.5 con Hamcrest 1.3 también es una mala idea.

¿Qué hacer?

  1. Use Hamcrest 1.1 con los últimos JUnit y Mockito
  2. Use Hamcrest 1.3 con los últimos JUnit y Mockito
  3. Intente parchear Mockito-core 1.9.5 para usar Hamcrest 1.3
    • Tiempo que realmente no tengo en este momento
  4. Utilice JUnit 4.10
  5. ¿Otro?

ACTUALIZACIÓN 2015-06-12: Tanto Mockito 1.10.19 como 2.0.13-beta todavía usan Hamcrest 1.1

Respuesta 1

Esta es la solución Maven sugerida por mszalbach:

<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>
Respuesta: 2

Estoy tratando de entender la configuración de la matriz en Java. ¿Por qué debe inicializar el espacio para cada objeto en la matriz, después de haber creado la matriz? ¿Cómo se almacena en la memoria de esta manera: [objeto] [...

En una entrevista, me pidieron que verificara si el siguiente código funciona según lo previsto. ConcurrentHashMap <Integer, Integer> chm = new ConcurrentHashMap <> (); if (chm.get (key)! = null) {chm ....

La compilación escalonada de HotSpot utiliza el intérprete hasta que un umbral de invocaciones (para métodos) o iteraciones (para bucles) desencadena una compilación del cliente con autoperforación. La compilación del cliente es ...

Quiero determinar si una cadena dada coincide, ignorando mayúsculas y minúsculas, uno de los elementos en una Lista <String>. Estoy tratando de lograr esto con las transmisiones de Java 8. Aquí está mi intento de usar .orElse (falso): ...