Phpunit: assertEquals() : les chaînes NULL, true et empty sont identiques

Créé le 15 sept. 2013  ·  3Commentaires  ·  Source: sebastianbergmann/phpunit

Lorsque j'utilise la méthode assertEquals() dans la classe PHPUnit_Framework_Testcase et que je compare :

_false_ contre _NULL_,
_chaîne vide_ contre _faux_,
_chaîne vide_ contre _NULL_

Tous les tests passent avec succès. Mais aucune valeur n'est égale l'une à l'autre. Donc assertEquals se compare à l'opérateur "==" au lieu de "===" ou quelque chose comme ça. Je pense que c'est censé être comme ça. Mais pourquoi?

Commentaire le plus utile

Nous avons assertSame() pour les comparaisons === .

Tous les 3 commentaires

Nous avons assertSame() pour les comparaisons === .

D'accord parfait. Les noms sont un peu trompeurs. Mais c'est ma faute. Désolé.

Mais assertSame() ne comparera que true , si les objets sont les mêmes.

class Foo {}
$this->assertSame(new Foo(), new Foo());
Failed asserting that two variables reference the same object.

J'ai besoin d'un code qui peut fonctionner comme ceci:

$this->assertSame(new Foo(null), new Foo("")); // false

$this->assertSame(new Foo(null), new Foo(null)); // true
$this->assertSame(new Foo(""), new Foo("")); // true
Cette page vous a été utile?
0 / 5 - 0 notes