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入门的学习方法
Jan 02 PHP
检查url链接是否已经有参数的php代码 添加 ? 或 &amp;
Feb 09 PHP
PHP中for与foreach的区别分析
Mar 09 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
Jun 03 PHP
php实现把数组按指定的个数分隔
Feb 17 PHP
ThinkPHP实现带验证码的文件上传功能实例
Nov 01 PHP
javascript+php实现根据用户时区显示当地时间的方法
Mar 11 PHP
CodeIgniter配置之database.php用法实例分析
Jan 20 PHP
浅析php中array_map和array_walk的使用对比
Nov 20 PHP
PHP编辑器PhpStrom运行缓慢问题
Feb 21 PHP
PHP关键特性之命名空间实例详解
May 06 PHP
tp5框架使用cookie加密算法实现登录功能示例
Feb 10 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
smarty section简介与用法分析
2008/10/03 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
2016/01/05 PHP
PHP实现动态执行代码的方法
2016/03/25 PHP
PHP多维数组指定多字段排序的示例代码
2018/05/16 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
2018/06/20 PHP
js实现精美的银灰色竖排折叠菜单
2015/05/16 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
2017/01/22 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
使用 Node.js 对文本内容分词和关键词抽取
2017/05/27 Javascript
关于AngularJS中ng-repeat不更新视图的解决方法
2018/09/30 Javascript
nuxt.js中间件实现拦截权限判断的方法
2018/11/21 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
jquery中为什么能用$操作
2019/06/18 jQuery
微信小程序在其他页面监听globalData中值的变化
2019/07/15 Javascript
[03:05]《我与DAC》之xiao8:DAC与BG
2018/03/27 DOTA
python两种遍历字典(dict)的方法比较
2014/05/29 Python
Python的装饰器使用详解
2017/06/26 Python
python中关于for循环的碎碎念
2017/06/30 Python
Python格式化输出%s和%d
2018/05/07 Python
利用Python检测URL状态
2019/07/31 Python
pytorch 常用线性函数详解
2020/01/15 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
keras的load_model实现加载含有参数的自定义模型
2020/06/22 Python
python判断是空的实例分享
2020/07/06 Python
哪种Python框架适合你?简单介绍几种主流Python框架
2020/08/04 Python
css sprite简单实例
2016/05/23 HTML / CSS
英文简历中的自我评价用语
2013/12/09 职场文书
工作时间上网检讨书
2014/02/03 职场文书
入党综合考察材料
2014/06/02 职场文书
宣传口号大全
2014/06/16 职场文书
司机岗位职责
2015/02/04 职场文书
会计求职信怎么写
2015/03/20 职场文书
汽车4S店前台接待岗位职责
2015/04/03 职场文书
小学生六年级作文之关于感恩
2019/08/16 职场文书
读《方与圆》有感:交友方圆有度
2020/01/14 职场文书
springboot中一些比较常用的注解总结
2021/06/11 Java/Android