Phpunit: assertEquals (): NULL, true и пустая строка - это одно и то же

Созданный на 15 сент. 2013  ·  3Комментарии  ·  Источник: sebastianbergmann/phpunit

Когда я использую метод assertEquals () в классе PHPUnit_Framework_Testcase и сравниваю:

_false_ против _NULL_,
_empty string_ против _false_,
_empty string_ против _NULL_

Все тесты проходят успешно. Но никакие ценности не равны друг другу. Таким образом, assertEquals сравнивается с оператором «==» вместо «===» или чем-то в этом роде. Думаю, все должно быть так, как есть. Но почему?

Самый полезный комментарий

У нас есть assertSame() для сравнений === .

Все 3 Комментарий

У нас есть assertSame() для сравнений === .

Хорошо, отлично. Имена немного ошибочны. Но это моя вина. Простите за это.

Но assertSame() будет сравнивать только true , если объекты одинаковы.

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

Мне нужен код, который может работать так:

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

$this->assertSame(new Foo(null), new Foo(null)); // true
$this->assertSame(new Foo(""), new Foo("")); // true
Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

keradus picture keradus  ·  4Комментарии

sebastianbergmann picture sebastianbergmann  ·  3Комментарии

rentalhost picture rentalhost  ·  4Комментарии

nicklevett picture nicklevett  ·  4Комментарии

sebastianbergmann picture sebastianbergmann  ·  4Комментарии