Phpunit: assertEquals (): NULL, true y la cadena vacía son lo mismo

Creado en 15 sept. 2013  ·  3Comentarios  ·  Fuente: sebastianbergmann/phpunit

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é?

Comentario más útil

Tenemos assertSame() para === comparaciones.

Todos 3 comentarios

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
¿Fue útil esta página
0 / 5 - 0 calificaciones