Yii2单元测试用法示例


Posted in PHP onNovember 12, 2016

本文实例讲述了Yii2单元测试用法。分享给大家供大家参考,具体如下:

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

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

<?php
namespace app\models;
use Yii;
use yii\base\Model;
class EntryForm extends Model
{
  public $name;
  public $email;
  public function rules()
  {
    return [
      [['name', 'email'], 'required'],
      ['email', 'email'],
    ];
  }
}

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

<?php
namespace tests\models;
use app\models\EntryForm;
class EntryFormTest extends \Codeception\Test\Unit
{
  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文件中

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php自定义函数之递归删除文件及目录
Aug 08 PHP
Php图像处理类代码分享
Jan 19 PHP
php cli模式学习(PHP命令行模式)
Jun 03 PHP
php使用sql数据库 获取字段问题介绍
Aug 12 PHP
PHP自带函数给数字或字符串自动补齐位数
Jul 29 PHP
php中get_meta_tags()、CURL与user-agent用法分析
Dec 16 PHP
PHP中iconv函数转码时截断字符问题的解决方法
Jan 21 PHP
php结合ACCESS的跨库查询功能
Jun 12 PHP
Joomla简单判断用户是否登录的方法
May 04 PHP
php实现的SSO单点登录系统接入功能示例分析
Oct 12 PHP
PHP isset()与empty()的使用区别详解
Feb 10 PHP
关于PHP中协程和阻塞的一些理解与思考
Aug 11 PHP
php获取flash尺寸详细数据的方法
Nov 12 #PHP
Yii2实现log输出到file及database的方法
Nov 12 #PHP
php 自定义错误日志实例详解
Nov 12 #PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
Nov 12 #PHP
php array_values 返回数组的所有值详解及实例
Nov 12 #PHP
php array_udiff_assoc 计算两个数组的差集实例
Nov 12 #PHP
PHP上传图片、删除图片简单实例
Nov 12 #PHP
You might like
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
2013/07/01 PHP
php include类文件超时问题处理
2015/02/06 PHP
浅析Laravel5中队列的配置及使用
2016/08/04 PHP
jQuery.Validate 使用笔记(jQuery Validation范例 )
2010/06/25 Javascript
jQuery实现动画效果的实例代码
2013/05/07 Javascript
jquery三个关闭弹出层的小示例
2013/11/05 Javascript
我的Node.js学习之路(四)--单元测试
2014/07/06 Javascript
JavaScript及jquey实现多个数组的合并操作
2014/09/06 Javascript
基于jQuery+JSON的省市二三级联动效果
2015/06/05 Javascript
javascript时间差插件分享
2016/07/18 Javascript
JS给Array添加是否包含字符串的简单方法
2016/10/29 Javascript
Angular2 Service实现简单音乐播放器服务
2017/02/24 Javascript
详解Node.js项目APM监控之New Relic
2017/05/12 Javascript
快速将Vue项目升级到webpack3的方法步骤
2017/09/14 Javascript
vue实现学生录入系统之添加删除功能
2018/07/11 Javascript
Vue-Cli 3.0 中配置高德地图的两种方式
2019/06/19 Javascript
微信小程序 行的删除和增加操作实现详解
2019/09/29 Javascript
javascript实现点击星星小游戏
2019/12/24 Javascript
[16:56]heroes英雄教学 司夜刺客
2014/09/18 DOTA
利用Python开发微信支付的注意事项
2016/08/19 Python
Python+Selenium自动化实现分页(pagination)处理
2017/03/31 Python
python连接数据库的方法
2017/10/19 Python
Python给你的头像加上圣诞帽
2018/01/04 Python
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
python 顺时针打印矩阵的超简洁代码
2018/11/14 Python
Python OpenCV利用笔记本摄像头实现人脸检测
2020/08/20 Python
tesserocr与pytesseract模块的使用方法解析
2019/08/30 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
2020/05/11 Python
师范学院毕业生求职信范文
2013/12/26 职场文书
高二政治教学反思
2014/02/01 职场文书
十八届三中全会个人学习材料
2014/02/13 职场文书
光学与应用专业毕业生求职信
2014/09/01 职场文书
高中生学习计划书
2014/09/15 职场文书
领导班子四风问题个人对照检查材料
2014/10/04 职场文书
客房服务员岗位职责
2015/02/09 职场文书
MySQL新手入门进阶语句汇总
2022/09/23 MySQL