验收测试 - 扩展(模块) ¶
作者:KK
发表日期:2015.12.13
和单元测试一样,test/acceptance.suite.yml
里的modules - enabled
里面是验收测试的模块配置
于是你一看配置文件也就知道了,验收测试用了PhpBrowser
和AcceptanceHelper
这两个模块,而AcceptanceHelper
就是_support
目录下的AcceptanceHelper
,默认是个空类
增加自己的测试方法 ¶
那当然就是像《扩展单元测试》那样,对自带的tests/_support/AcceptanceHelper.php
这里的类做编辑,添加你想要的方法咯,比如我添加这样一个方法:
public function login($username, $password){
$browser = $this->getModule('PhpBrowser'); //要先取出浏览器模块,这个模块必须是yml里已经配置了的,否则get出个null
$browser->amOnPage('/login.html'); //其实前面验收测试用例的$I调用的就是PhpBrowser模块的方法,这里直接用browser来调用效果是一样的
$browser->see('登陆', '#loginForm');
$browser->fillField('username', 'test1');
$browser->fillField('password', '121212');
$browser->fillField('verify', '121212');
$browser->submitForm('#loginForm');
$browser->see('会员中心', '#position');
}
然后用重构一下测试器,这里它会同时将单元测试的Tester也一起重新构造,尽管你没对单元测试的模块做改变
然后可以看到tests/acceptance/AccepanceTester.php
里多了一个login($username, $password)
方法
那么你的测试用例可以这样写了:
use project1_tests\AcceptanceTester;
$I = new AcceptanceTester($scenario);
$I->login();
$I->amOnPage('/friends'); //假设去好友查看页面
$I->see('可能认识的人'); //假设去商店
$I->see('下一页'); //断言有下一页按钮
$I->seeNumberOfElements('#friends li', 20); //断言好友列表里有20个
//....更多登陆后才能做的断言
于是,你也能封装更多更多的方法到Helper里了