我正在设置代码来测试我的Yii应用程序。 我遇到了'YiiBridge'并且我无法理解为什么这是必需的,因为我创建了一个简单的验收测试用例并且它工作正常。 我的测试用例是:
<?php
$I = new AcceptanceTester($scenario);
$I->wantTo('ensure that the frontpage works');
$I->amOnPage('/');
$I->see('LOGIN');
?>
更复杂的测试用例是否需要YiiBridge?
另外我注意到接受和功能测试用例完全相同,在functional.suite.yml文件中缺少phpBrowser,它存在于acceptance.suite.yml文件中,并且在代码网站上说phpBrowser有以下缺点:
通过这种方式,我将无法测试我的AngularJs功能。有没有办法解决这些限制?
提前致谢!
答案 0 :(得分:1)
不,他们不会。更复杂的测试用例是否需要YiiBridge?
我们也使用Yii并使用WebDriver编写验收测试。它与phpBrowser类似,你不需要Yii Bridge,因为WebDriver / phpBrowser将“模拟”一个真正的浏览器。功能测试需要Yii Bridge。是的,你是对的:
功能测试几乎相同,只有一个主要区别:功能测试不需要Web服务器来运行测试。
对于AngularJS和其他javascript测试,您必须编写一些自定义函数,如下所示:
public function openDevice() {
$I = $this;
$script = 'return document.getElementById("createDevice").children[0].click()';
$I->executeJS($script);
}
测试JS总是有点烦人,但这是可能的。