assertContains()


assertContains(mixed $needle, Iterator|array $haystack[, string $message = ''])

$needle 不是 $haystack的元素时报告错误,错误讯息由 $message 指定。

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

assertAttributeContains()assertAttributeNotContains() 是便捷包装(convenience wrapper),以某个类或对象的 publicprotectedprivate 属性为搜索范围。


例 A.5: assertContains() 的用法

  1. <?php
  2. use PHPUnit\Framework\TestCase;
  3.  
  4. class ContainsTest extends TestCase
  5. {
  6. public function testFailure()
  7. {
  8. $this->assertContains(4, [1, 2, 3]);
  9. }
  10. }
  11. ?>
  1. phpunit ContainsTest
  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) ContainsTest::testFailure
  11. Failed asserting that an array contains 4.
  12.  
  13. /home/sb/ContainsTest.php:6
  14.  
  15. FAILURES!
  16. Tests: 1, Assertions: 1, Failures: 1.

assertContains(string $needle, string $haystack[, string $message = '', boolean $ignoreCase = false])

$needle 不是 $haystack 的子字符串时报告错误,错误讯息由 $message 指定。

如果 $ignoreCasetrue,测试将按大小写不敏感的方式进行。


例 A.6: assertContains() 的用法

  1. <?php
  2. use PHPUnit\Framework\TestCase;
  3.  
  4. class ContainsTest extends TestCase
  5. {
  6. public function testFailure()
  7. {
  8. $this->assertContains('baz', 'foobar');
  9. }
  10. }
  11. ?>
  1. phpunit ContainsTest
  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) ContainsTest::testFailure
  11. Failed asserting that 'foobar' contains "baz".
  12.  
  13. /home/sb/ContainsTest.php:6
  14.  
  15. FAILURES!
  16. Tests: 1, Assertions: 1, Failures: 1.


例 A.7: 带有 $ignoreCase 参数的 assertContains() 的用法

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