java junit format java-time

java DateTimeFormatterBuilder falla en el tiempo de prueba



junit java-time (1)

El nombre del mes está en inglés, por lo que es mejor que establezca un java.util.Locale en el formateador.

Si no lo configura, el formateador utilizará la configuración regional predeterminada de JVM. Y si no es inglés, puede obtener un error (y diferentes entornos pueden tener diferentes configuraciones, por lo que es mejor establecer la configuración regional en lugar de confiar en el valor predeterminado de la JVM).

Simplemente haga toFormatter(Locale.ENGLISH) lugar de solo toFormatter() y eso es todo.

Tengo una prueba jUnit simple para DateTimeFormatterBuilder . En tiempo de ejecución funciona, cuando algo de String aparece en Spring-MVC hanlder ( @RequestParam )

En el momento de la prueba falla con el mismo valor de String .

Valor probado: 25-May-2018 11:10

Método a probar:

public void getTimeDifference(@RequestParam String startDate, @RequestParam String endDate) { DateTimeFormatter DATE_TIME_FORMAT = new DateTimeFormatterBuilder().parseCaseInsensitive().appendPattern("dd-MMM-yyyy HH:mm").toFormatter(); LocalDateTime.parse(startDate,DATE_TIME_FORMAT); return messages; }

Método de prueba:

@Test public void testFormat() throws Exception { final String startDateFormatA = "25-May-2018 11:10"; final String endDateFormatA = "25-May-2018 11:10"; assertEquals("06:00", callDbController.getTimeDifference(startDateFormatA, endDateFormatA)[1]); }

Mi prueba: en el tiempo de ejecución, establezco un punto de interrupción y lo pruebo en la vista de visualización:

LocalDateTime.parse("25-May-2018 11:10",DATE_TIME_FORMAT)

En el momento de la prueba con el mismo contexto de aplicación de resorte, hago lo mismo que en el tiempo de ejecución y falla.

¿Alguien tiene ideas?