當(dāng) ?$string
? 不匹配于 ?$format
? 定義的格式時(shí)報(bào)告錯(cuò)誤,錯(cuò)誤訊息由 ?$message
? 指定。
?assertStringNotMatchesFormat()
? 是與之相反的斷言,接受相同的參數(shù)。
示例 1.54 assertStringMatchesFormat() 的用法
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;
final class StringMatchesFormatTest extends TestCase
{
public function testFailure(): void
{
$this->assertStringMatchesFormat('%i', 'foo');
}
}
$ phpunit StringMatchesFormatTest
PHPUnit latest.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 系統(tǒng)中是 ?/
?%s
?:一個(gè)或多個(gè)除了換行符以外的任意字符(非空白字符或者空白字符)%S
?:零個(gè)或多個(gè)除了換行符以外的任意字符(非空白字符或者空白字符)%a
?:一個(gè)或多個(gè)包括換行符在內(nèi)的任意字符(非空白字符或者空白字符)%A
?:零個(gè)或多個(gè)包括換行符在內(nèi)的任意字符(非空白字符或者空白字符)%w
?:零個(gè)或多個(gè)空白字符%i
?:帶符號整數(shù)值,例如 ?+3142
?、?-3142
?%d
?:無符號整數(shù)值,例如 ?123456
?%x
?:一個(gè)或多個(gè)十六進(jìn)制字符。所謂十六進(jìn)制字符,指的是在以下范圍內(nèi)的字符:?0-9
?、?a-f
?、?A-
?F%f
?:浮點(diǎn)數(shù),例如 ?3.142
?、?-3.142
?、?3.142E-10
?、?3.142e+10
?%c
?:單個(gè)任意字符%%
?:原本的百分比字符:?%
?
更多建議: