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 相关文章推荐
建立动态的WML站点(二)
Oct 09 PHP
php array_merge下进行数组合并的代码
Jul 22 PHP
PHP递归返回值时出现的问题解决办法
Feb 19 PHP
使用php判断浏览器的类型和语言的函数代码
Feb 28 PHP
php导出excel格式数据问题
Mar 11 PHP
Yii结合CKEditor实现图片上传功能
Jun 13 PHP
php发送get、post请求的6种方法简明总结
Jul 08 PHP
php+xml编程之SimpleXML的应用实例
Jan 24 PHP
使用PHP接受文件并获得其后缀名的方法
Aug 05 PHP
php文件系统处理方法小结
May 23 PHP
php利用header函数下载各种文件
Aug 24 PHP
php校验公钥是否可用的实例方法
Sep 17 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 无限极分类
2008/03/27 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
JS JavaScript获取Url参数,src属性参数
2021/03/09 Javascript
jquery $.ajax()取xml数据的小问题解决方法
2010/11/20 Javascript
js 利用className得到对象的实现代码
2011/11/15 Javascript
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
值得分享的轻量级Bootstrap Table表格插件
2016/05/30 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
详解angularJs中自定义directive的数据交互
2017/01/13 Javascript
关于单文件组件.vue的使用
2018/09/20 Javascript
Javascript中绑定click事件的四种方式介绍
2018/10/26 Javascript
使用VueCli3+TypeScript+Vuex一步步构建todoList的方法
2019/07/25 Javascript
layui.use模块外部使用其内部定义的js封装函数方法
2019/09/16 Javascript
微信小程序制作扭蛋机代码实例
2019/09/24 Javascript
ant design vue导航菜单与路由配置操作
2020/10/28 Javascript
Python getopt模块处理命令行选项实例
2014/05/13 Python
win7 下搭建sublime的python开发环境的配置方法
2014/06/18 Python
用Python编写一个国际象棋AI程序
2014/11/28 Python
python中子类调用父类函数的方法示例
2017/08/18 Python
Django 2.0版本的新特性抢先看!
2018/01/05 Python
浅谈numpy库的常用基本操作方法
2018/01/09 Python
python traceback捕获并打印异常的方法
2018/08/31 Python
python创建文件备份的脚本
2018/09/11 Python
Python补齐字符串长度的实例
2018/11/15 Python
python正则爬取某段子网站前20页段子(request库)过程解析
2019/08/10 Python
淘宝秒杀python脚本 扫码登录版
2019/09/19 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
python中取绝对值简单方法总结
2020/07/24 Python
css3 给页面加个半圆形导航条主要利用旋转和倾斜样式
2014/02/10 HTML / CSS
一波HTML5 Canvas基础绘图实例代码集合
2016/02/28 HTML / CSS
个人自我鉴定总结
2014/03/25 职场文书
旷课检讨书
2015/01/26 职场文书
2015年乡镇安全生产工作总结
2015/05/19 职场文书
position:sticky 粘性定位的几种巧妙应用详解
2021/04/24 HTML / CSS
MATLAB 全景图切割及盒图显示的实现步骤
2021/05/14 Python