Qu'est-ce exactement ne assertEquals vérifier quand affirmant listes?
Dans mon test, je suis en affirmant que la liste, j'ai le retour est une classés par ordre alphabétique, la liste de celle que je viens de créer.
Exactement ce que fait le assertEquals faire vérifier? Ne vérifier l'ordre de la liste ou de son contenu?
Donc, si j'ai une liste de { "Fred", "Bob", "Anna" } liste 2 de l' { "Anna", "Bob", "Fred" } return true, car ils contiennent le même objet, quel que soit l'ordre?
Pas parce que c'est une Liste, pas un Jeu, voir ma réponse.
C'est quelque chose que vous pouvez essayer pour vous-même très rapidement.
C'est quelque chose que vous pouvez essayer pour vous-même très rapidement.
OriginalL'auteur liloka | 2013-05-28
Vous devez vous connecter pour publier un commentaire.
Si vous suivez le code source de jUnit. Vous verrez que
assertEquals
appelle éventuellement laequals
méthode sur les objets fournis dans leisEquals
méthode.Code Source: https://github.com/junit-team/junit/blob/master/src/main/java/org/junit/Assert.java
Ce qui fera appel à la
.equals()
méthode sur la mise en œuvre deList
. Voici la le code source pour la.equals()
mise en œuvre de la "ArrayList'.ArrayList.equals()
OriginalL'auteur Kevin Bowersox
Il n'y a pas
assertEquals
fonctions dansjunit.framework.Assert
qui accepteList
ouCollection
objet.Quand vous dites
assertEquals(list1, list2);
il vérifie simplement silist1.equals(list2)
et si pas jetteAssertionError
OriginalL'auteur sanbhat
Une Liste est, par définition, est commandé, donc je dirais qu'il appelle equals() et vérifier les éléments de deux listes, un par un.
Ok permettez-moi de reformuler, qu'entendez-vous par "l'ordre de la liste" et "son contenu"?
Si la liste que vous créez est [b,a], la commande sera [a,b].
[a,b] ne peut être égal à [a,b] parce que la Liste est ordonnée.
Deux ensembles, [a,b] et [b,a] ne sont pas classées, mais l'égalité.
De Plus, si vous regardez le code source, il FAIT appel equals(), alors pourquoi les downvotes?
OriginalL'auteur Djon