PHPUnit TestCase中是否存在断言字符串指定长度的方法?
PHPUnit中是否有断言字符串长度的方法?
PHPUnit的TestCase类没有专门的assertLength方法直接断言字符串长度,你当前使用$this->assertEquals(10, strlen($str));的写法是常规且有效的方案。
如果想要实现类似assertLength的调用方式,有两种可选思路:
- 自定义封装断言方法:在你的测试基类中添加如下方法,后续即可直接调用:
之后就能像protected function assertLength(int $expected, string $actual, string $message = ''): void { $this->assertEquals($expected, strlen($actual), $message); }$this->assertLength(10, $str);这样使用。 - 结合
assertThat与约束类:可以用\PHPUnit\Framework\Constraint\IsEqual配合strlen实现,但这种写法比直接用assertEquals更繁琐,没有必要特意采用。
另外你提到的assertCount确实仅支持可迭代类型(数组、实现Traversable接口的对象等),无法直接用于字符串长度断言。
内容的提问来源于stack exchange,提问作者Code Spirit
相关产品推荐
相关产品推荐

