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中操作MySQL数据库的一些要注意的问题
Oct 09 PHP
一家之言的经验之谈php+mysql扎实个人基本功
Mar 27 PHP
php算开始时间到过期时间的相隔的天数
Jan 12 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
Aug 14 PHP
php判断正常访问和外部访问的示例
Feb 10 PHP
php阻止页面后退的方法分享
Feb 17 PHP
mac环境中使用brew安装php5.5.15
Aug 18 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
Feb 12 PHP
mac下多个php版本快速切换的方法
Oct 09 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
thinkPHP框架中layer.js的封装与使用方法示例
Jan 18 PHP
laravel 解决ajax异步提交数据,并还回填充表格的问题
Oct 15 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中防止SQL注入的最佳解决方法
2013/04/25 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
2014/06/12 PHP
php中Snoopy类用法实例
2015/06/19 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
2016/12/23 PHP
创建无限极分类树型结构的简单方法
2017/06/20 PHP
php创建类并调用的实例方法
2019/09/25 PHP
js采用map取到id集合组并且实现点击一行选中一行
2013/12/16 Javascript
js判断浏览器类型及设备(移动页面开发)
2015/07/30 Javascript
jQuery 更改checkbox的状态,无效的解决方法
2016/07/22 Javascript
AngularJS延迟加载html template
2016/07/27 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
2016/10/19 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
vue 实现的树形菜的实例代码
2018/03/19 Javascript
angular4应用中输入的最小值和最大值的方法
2019/05/17 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
2020/05/06 Javascript
详解用js代码触发dom事件的实现方案
2020/06/10 Javascript
Angular处理未可知异常错误的方法详解
2021/01/17 Javascript
[02:51]DOTA2英雄基础教程 艾欧
2014/01/13 DOTA
[52:07]完美世界DOTA2联赛PWL S3 LBZS vs access 第二场 12.10
2020/12/13 DOTA
Python中使用PDB库调试程序
2015/04/05 Python
对numpy的array和python中自带的list之间相互转化详解
2018/04/13 Python
如何基于python测量代码运行时间
2019/12/25 Python
Win10下用Anaconda安装TensorFlow(图文教程)
2020/06/18 Python
HTML5在IE10、火狐下中文乱码问题的解决方法
2013/11/18 HTML / CSS
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
比利时买床:Beter Bed
2017/12/06 全球购物
渡河少年教学反思
2014/02/12 职场文书
企业出纳岗位职责
2014/03/12 职场文书
师德建设实施方案
2014/03/21 职场文书
好的旅游活动方案
2014/08/19 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
2016年领导干部正风肃纪心得体会
2015/10/09 职场文书
体育部部长竞选稿
2015/11/21 职场文书
用golang如何替换某个文件中的字符串
2021/04/25 Golang
Python实现Hash算法
2022/03/18 Python
尝试使用Python爬取城市租房信息
2022/04/12 Python