Cuando uso el método assertEquals () en la clase PHPUnit_Framework_Testcase y comparo:
_false_ contra _NULL_,
_cadena vacía_ contra _falso_,
_cadena vacía_ contra _NULL_
Todas las pruebas pasan con éxito. Pero ningún valor es igual entre sí. Así que assertEquals se compara con el operador "==" en lugar de "===" o algo así. Creo que se supone que debe ser como es. ¿Pero por qué?
Tenemos assertSame()
para ===
comparaciones.
Está bien, perfecto. Los nombres son un poco engañosos. Pero es culpa mía. Lo siento por eso.
Pero assertSame()
solo comparará true
, si los objetos son iguales.
class Foo {}
$this->assertSame(new Foo(), new Foo());
Failed asserting that two variables reference the same object.
Necesito un código que pueda funcionar así:
$this->assertSame(new Foo(null), new Foo("")); // false
$this->assertSame(new Foo(null), new Foo(null)); // true
$this->assertSame(new Foo(""), new Foo("")); // true
Comentario más útil
Tenemos
assertSame()
para===
comparaciones.