diferencias entre 2 clases JUnit Assert
El framework JUnit contiene 2 Assert
clases (en paquetes diferentes, obviamente) y los métodos en cada uno parecen ser muy similares. ¿Alguien puede explicar por qué es esto?
Las clases a Las que me refiero son: junit.framework.Assert
y org.junit.Assert
.
5 answers
El antiguo método (de JUnit 3) era marcar las clases de prueba extendiendo junit.framework.TestCase
. Eso heredó junit.framework.Assert
y su clase de prueba ganó la capacidad de llamar a los métodos assert de esta manera.
Desde la versión 4 de JUnit, el framework usa Annotations
para marcar pruebas. Así que ya no necesitas extender TestCase
. Pero eso significa que los métodos assert no están disponibles. Pero puede hacer una importación estática de la nueva clase Assert
. Es por eso que todos los métodos assert en la nueva clase son métodos estáticos. Así que puede importarlo de esta manera:
import static org.junit.Assert.*;
Después de esta importación estática, puede usar estos métodos sin prefijo.
En el rediseño también se movieron al nuevo paquete org.junit
que sigue mejor las convenciones normales para nombrar paquetes.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-23 11:23:38
JUnit 3.X: junit.framework.Assert
JUnit 4.X: org.junit.Assert
Prefiere el más nuevo, especialmente cuando se ejecuta JDK5 y superior con soporte de anotación.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-10 13:20:02
De hecho, hay un cambio funcional: org.junit.Assert
se quejará si usa el argumento de dos assertEquals()
con float
o double
, mientras que junit.framework.Assert
lo autoboxe silenciosamente.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-31 08:56:47
Creo que están refactorizando de junit.framework
a org.junit
y junit.framework.Assert
se mantiene para la compatibilidad hacia atrás.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-11-14 19:00:35
Hice una comparación aproximada del código fuente y no hay cambios serios. Se agregaron muchos comentarios en org.junit.Assert
y se realizaron algunas refactorizaciones. El único cambio es la comparación con Arrays
. Hay algunas limpiezas de código, pero no hay (en mi humilde opinión) ningún cambio funcional.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-23 10:52:50