Phpunit: assertEquals (): NULL, string verdadeira e vazia são iguais

Criado em 15 set. 2013  ·  3Comentários  ·  Fonte: sebastianbergmann/phpunit

Quando eu uso o método assertEquals () na classe PHPUnit_Framework_Testcase e compare:

_false_ contra _NULL_,
_cadeia vazia_ contra _falso_,
_cadeia vazia_ contra _NULL_

Todos os testes passam com sucesso. Mas nenhum valor é igual um ao outro. Portanto, assertEquals compara com o operador "==" em vez de "===" ou algo parecido. Pense que deveria ser como é. Mas por que?

Comentários muito úteis

Temos assertSame() para === comparações.

Todos 3 comentários

Temos assertSame() para === comparações.

Ok, perfeito. Os nomes são um pouco enganadores. Mas é minha culpa. Desculpe por isso.

Mas assertSame() só comparará true , se os objetos forem iguais.

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

Preciso de um código que funcione assim:

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

$this->assertSame(new Foo(null), new Foo(null)); // true
$this->assertSame(new Foo(""), new Foo("")); // true
Esta página foi útil?
0 / 5 - 0 avaliações