Ketika saya menggunakan metode assertEquals() di kelas PHPUnit_Framework_Testcase dan membandingkan:
_false_ melawan _NULL_,
_string kosong_ terhadap _false_,
_string kosong_ terhadap _NULL_
Semua tes lulus dengan sukses. Tetapi tidak ada nilai yang sama satu sama lain. Jadi assertEquals membandingkan dengan operator "==" alih-alih "===" atau sesuatu seperti itu. Pikir itu seharusnya seperti itu. Tapi kenapa?
Kami memiliki assertSame()
untuk ===
perbandingan.
Oke sempurna. Nama-namanya agak menyesatkan. Tapi ini salahku. Maaf untuk itu.
Tetapi assertSame()
hanya akan membandingkan true
, jika objeknya sama.
class Foo {}
$this->assertSame(new Foo(), new Foo());
Failed asserting that two variables reference the same object.
Saya memerlukan beberapa kode yang dapat berfungsi seperti ini:
$this->assertSame(new Foo(null), new Foo("")); // false
$this->assertSame(new Foo(null), new Foo(null)); // true
$this->assertSame(new Foo(""), new Foo("")); // true
Komentar yang paling membantu
Kami memiliki
assertSame()
untuk===
perbandingan.