【发布时间】:2014-07-23 20:01:57
【问题描述】:
我似乎无法在PHPUnit 中找到一个断言来简单地测试一个字符串是否包含在另一个字符串的某个位置。尝试做这样的事情:
public function testRecipe() {
$plaintext = get_bread_recipe();
$this->assertStringContains('flour', $plaintext);
}
我会提出什么真正的断言而不是 assertStringContains ?在这种情况下,我宁愿不必担心正则表达式,因为绝对不需要它。
太简单了,一定有什么我忽略了,但我就是想不通!有趣的是assertStringStartsWith()和assertStringEndsWith()!
更新:我知道strpos() !== false 可以使用,但我正在寻找更清洁的东西。如果我只是使用普通的 PHP 函数,那么所有断言的重点是什么......
【问题讨论】:
-
没有这样的方法可以做到这一点,但是你可以使用
$this->assertGreaterThan(0, strpos($plaintext, 'flour')); -
@bartek 如果字符串以 'flour' 开头,则会失败
-
@GordonM 对,在这种情况下,
-1可以解决问题 -
@bartek 那仍然行不通。您必须对 FALSE 进行严格的测试
-
看,这正是我想要这个特定断言的原因——这里的混乱已经很明显了!