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 相关文章推荐
模拟xcopy的函数
Oct 09 PHP
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
Oct 29 PHP
PHP插入排序实现代码
Apr 04 PHP
php伪静态之APACHE篇
Jun 02 PHP
PHP实现采集抓取淘宝网单个商品信息
Jan 08 PHP
使用PHP生成PDF方法详解
Jan 23 PHP
YII2.0之Activeform表单组件用法实例
Jan 09 PHP
PHP实现长文章分页实例代码(附源码)
Feb 03 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
May 20 PHP
php处理单文件、多文件上传代码分享
Aug 24 PHP
PHP抽象类与接口的区别实例详解
May 09 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
Oct 21 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
Linux下将excel数据导入到mssql数据库中的方法
2010/02/08 PHP
php解析json数据实例
2014/08/19 PHP
PHP邮件发送类PHPMailer用法实例详解
2014/09/22 PHP
PHP 正则表达式小结
2015/02/12 PHP
PHP parse_ini_file函数的应用与扩展操作示例
2019/01/07 PHP
PHP PDOStatement::fetchColumn讲解
2019/01/31 PHP
PHP count()函数讲解
2019/02/03 PHP
jQuery的实现原理的模拟代码 -2 数据部分
2010/08/01 Javascript
Jquery easyui开启行编辑模式增删改操作
2016/01/14 Javascript
基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
2016/07/22 Javascript
浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处
2016/10/29 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
实例详解display:none与visible:hidden的区别
2017/03/30 Javascript
基于JavaScript实现百度搜索框效果
2020/06/28 Javascript
vue项目中公用footer组件底部位置的适配问题
2018/05/10 Javascript
js实现延迟加载的几种方法详解
2019/01/19 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python import自定义模块方法
2015/02/12 Python
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
pandas 实现字典转换成DataFrame的方法
2018/07/04 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
关于pymysql模块的使用以及代码详解
2019/09/01 Python
使用python远程操作linux过程解析
2019/12/04 Python
python实现多进程按序号批量修改文件名的方法示例
2019/12/30 Python
Python 实现OpenCV格式和PIL.Image格式互转
2020/01/09 Python
Python 读取xml数据,cv2裁剪图片实例
2020/03/10 Python
tensorflow转换ckpt为savermodel模型的实现
2020/05/25 Python
如何使用python socket模块实现简单的文件下载
2020/09/04 Python
详解CSS3中border-image的使用
2015/07/18 HTML / CSS
CSS3制作气泡对话框的实例教程
2016/05/10 HTML / CSS
付款委托书范本
2014/10/05 职场文书
2014年评职称工作总结
2014/11/20 职场文书
单位介绍信格式
2015/01/31 职场文书
初中班长竞选稿
2015/11/20 职场文书
Java org.w3c.dom.Document 类方法引用报错
2021/08/07 Java/Android