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 相关文章推荐
一个可查询所有表的“通用”查询分页类
Oct 09 PHP
php 全文搜索和替换的实现代码
Jul 29 PHP
php基础教程 php内置函数实例教程
Aug 21 PHP
php使用exec shell命令注入的方法讲解
Nov 12 PHP
ajax+php控制所有后台函数调用
Jul 15 PHP
非常重要的php正则表达式详解
Jan 04 PHP
centos+php+coreseek+sphinx+mysql之一coreseek安装篇
Oct 25 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
Jul 20 PHP
通过修改Laravel Auth使用salt和password进行认证用户详解
Aug 17 PHP
php 读取文件夹下所有图片、文件的实例
Oct 17 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
Dec 01 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
Feb 26 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
PHP 文件编程综合案例-文件上传的实现
2013/07/03 PHP
简单的php文件上传(实例)
2013/10/27 PHP
CI(CodeIgniter)模型用法实例分析
2016/01/20 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
如何用ajax来创建一个XMLHttpRequest对象
2012/12/10 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
JS对象与json字符串格式转换实例
2014/10/28 Javascript
jQuery的几个我们必须了解的特点
2015/05/03 Javascript
javascript实现表格增删改操作实例详解
2015/05/15 Javascript
纯javascript实现四方向文本无缝滚动效果
2015/06/16 Javascript
javascript简单实现滑动菜单效果的方法
2015/07/27 Javascript
jQuery实现购物车表单自动结算效果实例
2015/08/10 Javascript
js实现无限级树形导航列表效果代码
2015/09/23 Javascript
jQuery实现上传图片前预览效果功能
2017/08/03 jQuery
JS库中的Particles.js在vue上的运用案例分析
2017/09/13 Javascript
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
手把手教你使用TypeScript开发Node.js应用
2019/05/06 Javascript
vuex + keep-alive实现tab标签页面缓存功能
2019/10/17 Javascript
JS实现字体背景跑马灯
2020/01/06 Javascript
Vue router传递参数并解决刷新页面参数丢失问题
2020/12/02 Vue.js
JavaScript实现浏览器网页自动滚动并点击的示例代码
2020/12/05 Javascript
javascript实现倒计时提示框
2021/03/02 Javascript
Python 代码性能优化技巧分享
2012/08/07 Python
Python类的专用方法实例分析
2015/01/09 Python
在Linux系统上安装Python的Scrapy框架的教程
2015/06/11 Python
Python的面向对象编程方式学习笔记
2016/07/12 Python
python实现音乐下载的统计
2018/06/20 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
python中return的返回和执行实例
2019/12/24 Python
Python爬虫之Selenium库的使用方法
2021/01/03 Python
Corelle官方网站:购买康宁餐具
2016/11/02 全球购物
prAna官网:瑜伽、旅行和冒险服装
2019/03/10 全球购物
交通事故一次性赔偿协议书范本
2014/11/02 职场文书
2014最新自愿离婚协议书范本
2014/11/19 职场文书
2016小学优秀教师先进事迹材料
2016/02/26 职场文书
python blinker 信号库
2022/05/04 Python