262 votes

différences entre 2 classes JUnit Assert

J'ai remarqué que le framework JUnit contient 2 Assert classes (dans différents paquets, évidemment) et les méthodes sur chaque semblent être très similaires. Quelqu'un peut-il expliquer pourquoi c'est?

Les classes auxquelles je fais référence sont: junit.framework.Assert et org.junit.Assert .

À la vôtre, Don

244voto

Mnementh Points 19831

L'ancienne méthode (de Junit 3) était de marquer l'essai-classes en extension de junit.cadre.Cas de test. Qui a hérité de junit.cadre.S'affirmer et de test de la classe a gagné la possibilité d'appeler l'affirmer-les méthodes de cette façon.

Depuis la version 4 de junit, le framework utilise les Annotations pour le marquage des tests. Donc, vous n'avez plus besoin d'étendre les cas de test. Mais cela signifie que le faire valoir ses méthodes ne sont pas disponibles. Mais vous pouvez faire une statique à l'importation de la nouvelle Affirmer classe. C'est pourquoi tous les faire valoir ses méthodes dans la classe sont des méthodes statiques. Ainsi, vous pouvez importer de cette façon:

import static org.junit.Assert.*;

Après cette statique de l'importation, vous pouvez utiliser cette méthode sans préfixe.

Lors de la refonte ils ont également déplacé vers le nouveau package org.junit, qui suit mieux les conventions normales pour les colis de nommage.

76voto

ReneS Points 1526

JUnit 3.X: junit.framework.Assert

JUnit 4.X: org.junit.Assert

Préférez le plus récent, en particulier lorsque vous utilisez JDK5 et plus avec le support des annotations.

20voto

David Moles Points 7669

Il y a en fait un changement fonctionnel: org.junit.Assert se plaindra si vous utilisez les deux arguments assertEquals() avec float ou double , tandis que junit.framework.Assert fera automatiquement en mode autobox.

5voto

sblundy Points 27163

Je crois qu'ils sont refactoring de junit.framework à org.junit et junit.framework.Assert est maintenu pour la rétrocompatibilité.

3voto

guerda Points 7417

J'ai fait une comparaison grossière du code source et il n'y a pas de changements sérieux.

Beaucoup de commentaires ont été ajoutés dans org.junit.Assert et quelques refactorings sont faits.

Le seul changement est la comparaison avec Arrays. Il y a quelques nettoyages de code, mais il n'y a (imho) aucun changement fonctionnel .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X