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 相关文章推荐
有关JSON以及JSON在PHP中的应用
Apr 09 PHP
php实现webservice实例
Nov 06 PHP
PHP内置的Math函数效率测试
Dec 01 PHP
为百度UE编辑器上传图片添加水印功能
Apr 16 PHP
解决php表单重复提交实现方法
Sep 29 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
Dec 10 PHP
PHP单链表的实现代码
Jul 05 PHP
MAC下通过改apache配置文件切换php多版本的方法
Apr 26 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
Jun 09 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
PHP进阶学习之反射基本概念与用法分析
Jun 18 PHP
如何解决PHP获取不到SESSION信息之一般情况
Oct 10 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 创建文件(文件夹)以及目录操作代码
2010/03/04 PHP
Yii2中cookie用法示例分析
2016/07/18 PHP
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
php输出形式实例整理
2020/05/05 PHP
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
简单几行JS Code实现IE邮件转发新浪微博
2013/07/03 Javascript
jQuery打印指定区域Html页面并自动分页
2014/07/04 Javascript
Javascript定义类(class)的三种方法详解
2015/03/13 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
jQuery实现tab选项卡效果的方法
2015/07/08 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
2020/03/28 Javascript
详解适配器在JavaScript中的体现
2018/09/28 Javascript
微信小程序云开发如何使用npm安装依赖
2019/05/18 Javascript
node.js处理前端提交的GET请求
2019/08/30 Javascript
Vue通过配置WebSocket并实现群聊功能
2019/12/31 Javascript
Python实现计算文件夹下.h和.cpp文件的总行数
2015/04/23 Python
python通过自定义isnumber函数判断字符串是否为数字的方法
2015/04/23 Python
详解Python验证码识别
2016/01/25 Python
Python中动态创建类实例的方法
2017/03/24 Python
python监控键盘输入实例代码
2018/02/09 Python
在python中获取div的文本内容并和想定结果进行对比详解
2019/01/02 Python
python变量命名的7条建议
2019/07/04 Python
python爬取盘搜的有效链接实现代码
2019/07/20 Python
Python龙贝格法求积分实例
2020/02/29 Python
CentOS 7如何实现定时执行python脚本
2020/06/24 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
2020/07/23 Python
BSTN意大利:德国街头和运动文化高品质商店
2020/12/22 全球购物
精通CAD能手自荐书
2014/01/31 职场文书
八项规定整改方案
2014/10/01 职场文书
教师节横幅标语
2014/10/08 职场文书
就业导师推荐信范文
2015/03/27 职场文书
浅谈Python数学建模之固定费用问题
2021/06/23 Python