尝试在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()));
    }

尝试在Yii2写codeception验收测试的简单例子

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('会员管理');
    }
}