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 mssql 数据库分页SQL语句
Dec 16 PHP
php的list()的一步操作给一组变量进行赋值的使用
May 18 PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
Aug 06 PHP
PHP利用header跳转失效的解决方法
Oct 24 PHP
PHP检测用户语言的方法
Jun 15 PHP
php实现对象克隆的方法
Jun 20 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
Aug 19 PHP
Laravel重写用户登录简单示例
Oct 08 PHP
Yii2框架中日志的使用方法分析
May 22 PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
Oct 11 PHP
Laravel中unique和exists验证规则的优化详解
Jan 28 PHP
PHP实现PDO操作mysql存储过程示例
Feb 13 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
phpadmin如何导入导出大数据文件及php.ini参数修改
2013/02/18 PHP
使用php判断浏览器的类型和语言的函数代码
2013/02/28 PHP
用PHP和Shell写Hadoop的MapReduce程序
2014/04/15 PHP
PHP中把数据库查询结果输出为json格式简单实例
2015/04/09 PHP
PHP curl批处理及多请求并发实现方法分析
2018/08/15 PHP
原创javascript小游戏实现代码
2010/08/19 Javascript
Javascript倒计时页面跳转实例小结
2013/09/11 Javascript
JS.findElementById()使用介绍
2013/09/21 Javascript
js确认删除对话框适用于a标签及submit
2014/07/10 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
2016/10/29 Javascript
Bootstrap 3.x打印预览背景色与文字显示异常的解决
2016/11/06 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
2017/05/03 Javascript
React+react-dropzone+node.js实现图片上传的示例代码
2017/08/23 Javascript
大转盘抽奖小程序版 转盘抽奖网页版
2020/04/16 Javascript
解决layui的form里的元素进行动态生成,验证失效的问题
2019/09/14 Javascript
vue如何实现动态加载脚本
2020/02/05 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
一篇文章带你搞懂Vue虚拟Dom与diff算法
2020/08/25 Javascript
[49:20]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
Python3实现从指定路径查找文件的方法
2015/05/22 Python
Python基于有道实现英汉字典功能
2015/07/25 Python
详解Python pygame安装过程笔记
2017/06/05 Python
Python基础练习之用户登录实现代码分享
2017/11/08 Python
Python线程创建和终止实例代码
2018/01/20 Python
python多线程之事件Event的使用详解
2018/04/27 Python
Python实现修改IE注册表功能示例
2018/05/10 Python
Python实现的多进程和多线程功能示例
2018/05/29 Python
windows7 32、64位下python爬虫框架scrapy环境的搭建方法
2018/11/29 Python
Django中提供的6种缓存方式详解
2019/08/05 Python
python二维图制作的实例代码
2020/12/03 Python
采用冷却技术的超自然舒适度:GhostBed床垫
2018/09/18 全球购物
几个数据库方面的面试题
2016/07/01 面试题
幼儿园园长岗位职责
2013/11/26 职场文书
办理信用卡工作证明
2014/01/11 职场文书
2015年前台个人工作总结
2015/04/03 职场文书
react中props 的使用及进行限制的方法
2021/04/28 Javascript