web-dev-qa-db-fra.com

Quelle est la différence réelle entre assertEquals () et assertTrue () dans TestNG?

Je suis confus à propos de ces deux méthodes, car les deux peuvent faire la même chose, comme l'extrait ci-dessous de mon code.

Utilisation de assertEquals ()

String a = "Hello";
String b = "Hello";

assertEquals(a, b);

Utilisation de assertTrue ()

assertTrue(a.equals(b));

Quelqu'un peut-il me dire la différence réelle entre ces deux méthodes?

16
Jainish Kapadia

assertEquals est meilleur car il donne au framework de test unitaire plus d'informations sur ce qui vous intéresse réellement. Cela lui permet de fournir de meilleures informations d'erreur lorsque le test échoue.

Supposons que vous ayez

String a = "Hello";
String b = "Hi";

Ensuite, les échecs de test pourraient ressembler à:

// From assertEquals(a, b)
Error: Expected "Hi"; was "Hello"

// From assertTrue:
Error: Expected true; was false

Laquelle de celles-ci, selon vous, vous donne plus d'informations, compte tenu du fait que les valeurs seraient probablement le résultat de calculs raisonnablement complexes?

(Ce sont des messages d'erreur composés car je n'ai pas installé testng, mais ce sont les kind des frameworks de tests unitaires.)

35
Jon Skeet