Phpunit: assertEquals(): NULL, true und leerer String sind gleich

Erstellt am 15. Sept. 2013  ·  3Kommentare  ·  Quelle: sebastianbergmann/phpunit

Wenn ich die Methode assertEquals() in der Klasse PHPUnit_Framework_Testcase verwende und vergleiche:

_false_ gegen _NULL_,
_leerer String_ gegen _false_,
_leerer String_ gegen _NULL_

Alle Tests werden erfolgreich bestanden. Aber kein Wert ist dem anderen gleich. Also vergleicht assertEquals mit dem Operator "==" statt mit "===" oder so ähnlich. Denke es soll so sein wie es ist. Aber warum?

Hilfreichster Kommentar

Wir haben assertSame() für === Vergleiche.

Alle 3 Kommentare

Wir haben assertSame() für === Vergleiche.

Okay perfekt. Die Namen sind etwas irreführend. Aber es ist meine Schuld. Das tut mir leid.

Aber assertSame() vergleicht nur true , wenn die Objekte gleich sind.

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

Ich brauche einen Code, der so funktionieren kann:

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

$this->assertSame(new Foo(null), new Foo(null)); // true
$this->assertSame(new Foo(""), new Foo("")); // true
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen