assertStringMatchesFormat()
最后更新于:2022-04-01 03:48:04
# assertStringMatchesFormat()
>[info] ## assertStringMatchesFormat(string $format, string $string[, string $message = ''])
当 `$string` 不匹配于 `$format` 定义的格式时报告错误,错误讯息由 `$message` 指定。
`assertStringNotMatchesFormat()` 是与之相反的断言,接受相同的参数。
**Example A.35. assertStringMatchesFormat() 的用法**
~~~
<?php
class StringMatchesFormatTest extends PHPUnit_Framework_TestCase
{
public function testFailure()
{
$this->assertStringMatchesFormat('%i', 'foo');
}
}
?>
~~~
~~~
phpunit StringMatchesFormatTest
PHPUnit 5.0.0 by Sebastian Bergmann and contributors.
F
Time: 0 seconds, Memory: 5.00Mb
There was 1 failure:
1) StringMatchesFormatTest::testFailure
Failed asserting that 'foo' matches PCRE pattern "/^[+-]?\d+$/s".
/home/sb/StringMatchesFormatTest.php:6
FAILURES!
Tests: 1, Assertions: 1, Failures: 1.
~~~
格式定义字符串中可以使用如下占位符:
-
`%e`:表示目录分隔符,例如在 Linux 系统中是 `/`。
-
`%s`:一个或多个除了换行符以外的任意字符(非空白字符或者空白字符)。
-
`%S`:零个或多个除了换行符以外的任意字符(非空白字符或者空白字符)。
-
`%a`:一个或多个包括换行符在内的任意字符(非空白字符或者空白字符)。
-
`%A`:零个或多个包括换行符在内的任意字符(非空白字符或者空白字符)。
-
`%w`:零个或多个空白字符。
-
`%i`:带符号整数值,例如 `+3142`、`-3142`。
-
`%d`:无符号整数值,例如 `123456`。
-
`%x`:一个或多个十六进制字符。所谓十六进制字符,指的是在以下范围内的字符:`0-9`、`a-f`、`A-F`。
-
`%f`:浮点数,例如 `3.142`、`-3.142`、`3.142E-10`、`3.142e+10`。
-
`%c`:单个任意字符。