عندما أستخدم طريقة assertEquals () في فئة PHPUnit_Framework_Testcase وقارن:
_false_ ضد _NULL_ ،
_سلسلة فارغة_ مقابل _false_ ،
_ سلسلة فارغة_ مقابل _NULL_
جميع الاختبارات تمر بنجاح. لكن لا توجد قيمة متساوية مع بعضها البعض. لذلك يقارن assertEquals مع عامل التشغيل "==" بدلاً من "===" أو شيء من هذا القبيل. أعتقد أنه من المفترض أن يكون كما هو. لكن لماذا؟
لدينا 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
التعليق الأكثر فائدة
لدينا
assertSame()
===
للمقارنات