Date de première publication : 2019/12/09
L'idée du TP est de montrer comment comparer les chaînes de caractères, les java.lang.String
en Java.
// Quelques déclarations préalables
String s1 = "loic";
String s2 = "loic";
String s3 = new String("loic");
String s4 = new String("loic");
String s5 = s3;
String s6 = null;
// Test de l'opérateur égal ==
System.out.print("s1==s2? ");
System.out.println(s1==s2);
System.out.print("s1==s3? ");
System.out.println(s1==s3);
System.out.print("s3==s4? ");
System.out.println(s3==s4);
System.out.print("s5==s3? " );
System.out.println(s5==s3);
// Test de la méthode equals()
System.out.print("s1.equals(s3)? ");
System.out.println(s1.equals(s3));
System.out.print("s1.equals(s6)? ");
System.out.println(s1.equals(s6));
System.out.print("s6.equals(s1)? ");
System.out.println(s6.equals(s1));
Programme standalone
Pour tester ces quelques lignes, il faut juste une classe bidon et une méthode de classe main()
:
public class Bidon {
public static void main(String[] argv) {
// copier coller le code précédent
}
}
puis compiler et exécuter le tout :
Vous pouvez également utiliser un projet Eclipse en précisant que vous voulez une méthode main()
. Exécutez le programme avec le bouton play_circle_filled.
javac Bidon.java
java Bidon
Equivalent avec des tests unitaires
Si vous voulez utiliser des tests unitaires, le plus simple est de mettre en œuvre l'exercice avec un EDI. Il faut d'abord créer un nouveau projet Java vide
Il faut ensuite créer un fichier de tests JUnit.
Il reste l'étape la plus importante : ajouter la bibliothèque de tests comme dépendance à la fois à la compilation puis à l'exécution...Il suffit de prendre une méthode avec l'annotation @Test
comme cela :
import static org.junit.Assert.*;
import org.junit.Test;
public class ChainesTest {
@Test
public void test() {
// adaptation du code donné
}
}
Une instruction comme s1==s2;
peut être vérifiée avec une des deux formes suivantes :
assertTrue (s1 == s2); // OU
assertFalse(s1 == s2);
Un test comme s1.equals(s2)
peut être lui changé en
assertEquals (s1, s2); // OU
assertNotEquals(s1, s2);
Les tests sont exécutés grâce au bouton play_circle_filled. Si un seul "assert" échoue, le test est mauvais :-)
Si vous voulez plus d'informations sur la bibliothèque de test JUnit, go this way