Phpunit: assertEquals():NULL、true、および空の文字列は同じです

作成日 2013年09月15日  ·  3コメント  ·  ソース: sebastianbergmann/phpunit

クラスPHPUnit_Framework_TestcaseでメソッドassertEquals()を使用して比較すると、次のようになります。

_NULL_に対する_false_、
_false_に対する_emptystring_、
_NULL_に対する_emptystring_

すべてのテストに合格しました。 しかし、互いに等しい値はありません。 したがって、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 評価

関連する問題

rentalhost picture rentalhost  ·  4コメント

keradus picture keradus  ·  4コメント

AnmSaiful picture AnmSaiful  ·  4コメント

ezzatron picture ezzatron  ·  3コメント

sebastianbergmann picture sebastianbergmann  ·  4コメント