zoukankan      html  css  js  c++  java
  • yii2笔记: 单元测试

    使用composer方式安装yii2-app-basic (https://github.com/yiisoft/yii2-app-basic/blob/master/README.md) 装好后既可以使用

    建一个Model文件EntryForm.php在models目录下

    <?php
    
    namespace appmodels;
    
    use Yii;
    use yiiaseModel;
    
    class EntryForm extends Model
    {
        public $name;
        public $email;
    
        public function rules()
        {
            return [
                [['name', 'email'], 'required'],
                ['email', 'email'],
            ];
        }
    }
    

    建一个EntryFormTest.php放在tests/unit/models目录下

    <?php
    namespace testsmodels;
    
    use appmodelsEntryForm;
    
    class EntryFormTest extends CodeceptionTestUnit
    {
        public function testValidInput()
        {
            $model = new EntryForm();
            $model->name = 'Harry Qin';
            $model->email = '15848778@qq.com';
            expect_that($model->validate());
    
            return $model;
        }
    
        public function testInvalidInput()
        {
            $model = new EntryForm();
            $model->name = 'Harry Qin';
            $model->email = 'xxyy';
            expect_not($model->validate());
    
            $model = new EntryForm();
            $model->name = '';
            $model->email = '15848778@qq.com';
            expect_not($model->validate());
        }
    
        /**
         * 下面一行表示这里输入的参数值来自testValidInput的输出
         * @depends testValidInput
         */
        public function testModelProperty($model)
        {
            expect($model->name)->equals('Harry Qin');
        }
    }
    

    项目根目录下运行

    composer exec codecept run unit

    输出

    。。。。。。

    ✔ EntryFormTest: Valid input (0.00s)
    ✔ EntryFormTest: Invalid input (0.00s)
    ✔ EntryFormTest: Model property (0.00s)

    这里全部成功了,如果测试失败,会显示具体失败信息。

    这里主要是3个方法

    expect_that: 假设为true

    expect_not: 假设为false

    expect: 假设目标对象,后面可以接verify方法,具体方法列表在vendor/codeception/verify/src/Codeception/Verify.php文件中

    PS:

    composer exec codecept build/run 有时候会失效,原因不明。

    可以用以下命令取代

    $ php vendor/bin/codecept build

    $ php vendor/bin/codecept run

    参考

    http://stackoverflow.com/questions/37568503/how-to-run-unit-testscodeception-in-yii2-framework

  • 相关阅读:
    Redis集群启动脚本
    查看表结构
    MySQL删除冗余数据
    Java中的阶乘
    MySQL中IFNULL,ISNULL和NULLIF
    最小化安装CentOS7后要做的30件事情
    VMware的CentOS部署环境
    CentOS 上的 FirewallD 简明指南
    CentOS安装Java环境
    Linux中一些常用的很巧妙的命令
  • 原文地址:https://www.cnblogs.com/zergling9999/p/6052766.html
Copyright © 2011-2022 走看看