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扩展图文教程
Dec 12 PHP
PHP用GD库生成高质量的缩略图片
Mar 09 PHP
PHP三元运算符的结合性介绍
Jan 10 PHP
php错误、异常处理机制(补充)
May 07 PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
Dec 28 PHP
PHP利用str_replace防注入的方法
Nov 10 PHP
Thinkphp实现MySQL读写分离操作示例
Jun 25 PHP
php中的动态调用实例分析
Jan 07 PHP
php pdo oracle中文乱码的快速解决方法
May 16 PHP
php监测数据是否成功插入到Mysql数据库的方法
Nov 25 PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
Apr 03 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
Mar 02 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 array_walk() 数组函数
2011/07/12 PHP
php批量上传的实现代码
2013/06/09 PHP
Yii框架实现记录日志到自定义文件的方法
2017/05/23 PHP
js 巧妙去除数组中的重复项
2010/01/25 Javascript
js获得地址栏?问号后参数的方法
2013/08/08 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
前端轻量级MVC框架CanJS详解
2014/09/26 Javascript
jQuery实现鼠标经过事件的延时处理效果
2020/08/20 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
2017/03/15 Javascript
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
JavaScript实现HTML5游戏断线自动重连的方法
2017/09/18 Javascript
JS开发中基本数据类型具体有哪几种
2017/10/19 Javascript
微信小程序实现动态设置页面标题的方法【附源码下载】
2017/11/29 Javascript
在create-react-app中使用css modules的示例代码
2018/07/31 Javascript
Nodejs对postgresql基本操作的封装方法
2019/02/20 NodeJs
vue router 传参获取不到的解决方式
2019/11/13 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
2020/07/19 Javascript
详解在Python和IPython中使用Docker
2015/04/28 Python
举例讲解Python中字典的合并值相加与异或对比
2016/06/04 Python
Django的HttpRequest和HttpResponse对象详解
2018/01/26 Python
Python学习笔记之open()函数打开文件路径报错问题
2018/04/28 Python
使用django-guardian实现django-admin的行级权限控制的方法
2018/10/30 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
2018/12/16 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
2020/02/29 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
CSS3毛玻璃效果(blur)有白边问题的解决方法
2016/11/15 HTML / CSS
英国电动工具购买网站:Anglia Tool Centre
2017/04/25 全球购物
eBay英国购物网站:eBay.co.uk
2019/06/19 全球购物
印尼第一大家居、生活和家具电子商务:Ruparupa
2019/11/25 全球购物
教育学习自我评价
2014/02/03 职场文书
春季防火方案
2014/05/10 职场文书
合作协议书格式
2014/08/19 职场文书
2016反腐倡廉警示教育心得体会
2016/01/13 职场文书
Python opencv缺陷检测的实现及问题解决
2021/04/24 Python
手把手教你导入Go语言第三方库
2021/08/04 Golang
Django框架模板用法详解
2022/06/10 Python