assertSame()


assertSame(mixed $expected, mixed $actual[, string $message = ''])

当两个变量 $expected$actual 的值与类型不完全相同时报告错误,错误讯息由 $message 指定。

assertNotSame() 是与之相反的断言,接受相同的参数。

assertAttributeSame()assertAttributeNotSame() 是便捷包装(convenience wrapper),以某个类或对象的某个 publicprotectedprivate 属性作为实际值来进行比较。


例 A.44: assertSame() 的用法

  1. <?php
  2. use PHPUnit\Framework\TestCase;
  3.  
  4. class SameTest extends TestCase
  5. {
  6. public function testFailure()
  7. {
  8. $this->assertSame('2204', 2204);
  9. }
  10. }
  11. ?>
  1. phpunit SameTest
  2. PHPUnit 6.5.0 by Sebastian Bergmann and contributors.
  3.  
  4. F
  5.  
  6. Time: 0 seconds, Memory: 5.00Mb
  7.  
  8. There was 1 failure:
  9.  
  10. 1) SameTest::testFailure
  11. Failed asserting that 2204 is identical to '2204'.
  12.  
  13. /home/sb/SameTest.php:6
  14.  
  15. FAILURES!
  16. Tests: 1, Assertions: 1, Failures: 1.

assertSame(object $expected, object $actual[, string $message = ''])

当两个变量 $expected$actual 不是指向同一个对象的引用时报告错误,错误讯息由 $message 指定。


例 A.45: assertSame() 应用于对象时的用法

  1. <?php
  2. use PHPUnit\Framework\TestCase;
  3.  
  4. class SameTest extends TestCase
  5. {
  6. public function testFailure()
  7. {
  8. $this->assertSame(new stdClass, new stdClass);
  9. }
  10. }
  11. ?>
  1. phpunit SameTest
  2. PHPUnit 6.5.0 by Sebastian Bergmann and contributors.
  3.  
  4. F
  5.  
  6. Time: 0 seconds, Memory: 4.75Mb
  7.  
  8. There was 1 failure:
  9.  
  10. 1) SameTest::testFailure
  11. Failed asserting that two variables reference the same object.
  12.  
  13. /home/sb/SameTest.php:6
  14.  
  15. FAILURES!
  16. Tests: 1, Assertions: 1, Failures: 1.