【发布时间】:2017-01-20 15:43:36
【问题描述】:
如何使用 PHP/Codeception 验收测试检查特定的 $string(例如 123)是否仅出现在特定的 HTML 元素中,而不出现在外部或其他任何地方?
示例:
<html><body>foobar 234<div id="original">123</div></body></html>
应该失败的示例 #1(文本出现):
<html><body>foobar 123<div id="original">123</div></body></html>
应该失败的示例 #2(链接出现):
<html>
<body>
foobar
<div id="original">123</div>
<a href="/link/123">Link</a>
</body>
</html>
我在特定页面以外的测试中尝试过的内容:
$I->seeInPageSource($alias);
$I->dontSeeInPageSource($original);
现在我需要类似的东西
$I->seeInPageSourceElement($original, '#original');
$I->dontSeeInPageSourceExceptElement($original, '#original');
// could be implemented like this:
$pageSourceWithoutElement = str_replace(
$I->grabPageSourceElement('#original'),
'',
$I->grabPageSource()
);
$I->assertNotContains($original, $pageSourceWithoutElement);
原因: 我有两个版本,其中一个版本是另一个版本的别名(称为“原始”)。我想确保只有别名在所有地方都使用,除了显示别名定义的“显示原始”页面。
【问题讨论】:
标签: php codeception acceptance-testing