• 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

  • 相关阅读:
    SQLSERVER 数据连接字符串
    c#中 间隔两个小时执行一次
    移动开发者的自学宝典:十大在线编程学习网站
    C#j将DataTable转换成List
    C#将list转换为datatable
    SQL Server 高性能写入 摘抄
    解决控制面板删除不了的程序卸载
    卸载SQL 2008 R2 出现警告26003
    删除重复数据
    大数据量数据优化
  • 原文地址:https://www.cnblogs.com/zergling9999/p/6052766.html
Copyright © 2020-2023  润新知