尝试在Yii2写codeception验收测试的简单例子
1.首先在testaction新增需要测试的业务方法。
/**
* [!] Method is generated. Documentation taken from corresponding module.*
* 我的会员卡页面
* @param null $mid
* @see \Helper\Acceptance::amOnMemberCardPage()
*/
public function amOnMemberCardPage($mid = null) {
return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnMemberCardPage', func_get_args()));
}
2.尝试在框架新增助手类_support/Helper/acceptance.php,封装自己需要测试的业务方法。
/**
* 生成会员卡
* @param $card_number
* @param $activation_code
*/
public function make_membercard($card_number,$activation_code)
{
$browser = $this->getBrowser();
$browser->sendAjaxPostRequest('/app/index.php?i=1&c=entry&m=new_shop&do=mobile&r=debug.make_membercard', [
'card_number' => $card_number,
'activation_code' => $activation_code,
]);
}
3.在tests根目录下新建一个验收测试的文件夹,并且新建自己需要测试的文件,例如我需要测试新增会员卡,则新建MemberCardCest.php。
4.可以尝试去codeception官网看文档,一些语法是如何使用,具体代码如下:
<?php
/*** 新增会员卡逻辑
* 1. 后台录入会员卡表单
* 2. 前端用户可以绑定会员卡,会员卡到期续费功能
* 3. 无会员卡或会员卡过期,禁止积分充值,积分转余额,余额提现
*/
class MemberCardCest
{
/**
* **会员卡
* @param AcceptanceTester $I
*/
public function tryToTestActivateCard(AcceptanceTester $I)
{
// TODO
$mobile='13000000000';
$card_number = '1234567890';
$activation_code = 'abcdef';
$I->make_membercard($card_number,$activation_code);//先要生成会员卡
$I->wantTo('activate membership card');
$I->amGeneralMember($mobile);
$I->amOnMobileHome();
$I->amOnMemberCardPage();
$I->see('您还没有绑定会员卡');
$I->dontSee('会员中心');
$I->click('去**会员卡');
$activateurl=$I->getCurrentUrl();
echo "当前**会员卡链接是" .$activateurl ."\n";
$I->see('会员卡号');
$I->see('**码');
$memberdata=[
'realname'=>$mobile,
'mobile'=>$mobile,
'card_number'=>$card_number,
'activation_code'=>$activation_code,
];
$I->click('立即**');
$I->sendAjaxPostRequest('/app/index.php?i=1&c=entry&m=new_shop&do=mobile&r=member.activation_vipcard.submit',[
'memberdata'=> $memberdata,
]);
}
/**
* 会员卡到期续费相关功能
*/
public function tryToTestCardExpired()
{
// TODO
}
/**
*后台批量生成会员卡
* @param AcceptanceTester $I
*/
public function tryToTestBatchGenerateCard(AcceptanceTester $I)
{
$I->amOnWebHome();
$I->see('会员管理');
}
}