Yii2单元测试用法示例

 更新时间:2016年11月12日 10:35:56   作者:zergling9999  
这篇文章主要介绍了Yii2单元测试用法,结合实例形式分析了Yii2单元测试的具体实现与使用技巧,需要的朋友可以参考下

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

相关文章

  • php实现文件下载简单示例(代码实现文件下载)

    php实现文件下载简单示例(代码实现文件下载)

    这篇文章主要介绍了php实现文件下载简单示例,需要的朋友可以参考下
    2014-03-03
  • 使用PHP编写发红包程序

    使用PHP编写发红包程序

    微信发红包是最近非常火的一件事情,大家或多或少的都发过或者收到过红包,那么下面来看一个我们在生活中常碰到的一个php实现微信红包的程序算法,希望这个程序对各位做微信开的朋友会带来帮助.
    2015-07-07
  • Yii实现Command任务处理的方法详解

    Yii实现Command任务处理的方法详解

    这篇文章主要介绍了Yii实现Command任务处理的方法,结合实例形式分析了Yii配置、加载及使用Command任务处理的步骤与相关技巧,需要的朋友可以参考下
    2016-07-07
  • PHP 字符串编码截取函数(兼容utf-8和gb2312)

    PHP 字符串编码截取函数(兼容utf-8和gb2312)

    昨天晚上和今天上午看了字符编码的问题,还有一些别人截取字符串的函数,自己也写了一个,兼容utf-8和gb2312的
    2009-05-05
  • PHP的重载使用魔术方法代码实例详解

    PHP的重载使用魔术方法代码实例详解

    这篇文章主要介绍了PHP的重载使用魔术方法代码实例详解,文章利用文字和代码说明的很清晰,有感兴趣的同学可以借鉴参考下
    2021-02-02
  • php 伪造HTTP_REFERER页面URL来源的三种方法

    php 伪造HTTP_REFERER页面URL来源的三种方法

    这篇文章主要介绍了php 伪造HTTP_REFERER页面URL来源的三种方法的相关资料,需要的朋友可以参考下
    2016-09-09
  • 在VS Code 中调试远程服务器的PHP代码详解

    在VS Code 中调试远程服务器的PHP代码详解

    这篇文章主要介绍了在VSCode中调试远程服务器的PHP代码,这里通过xdebug配合vscode的php debug插件来实现,本文结合实例代码介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • ThinkPHP5分页paginate代码实例解析

    ThinkPHP5分页paginate代码实例解析

    这篇文章主要介绍了ThinkPHP5分页paginate代码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • php fsockopen解决办法 php实现多线程

    php fsockopen解决办法 php实现多线程

    有没有办法在php中实现多线程呢?假设你正在写一个基于多台服务器的php应用,理想的情况时同时向多台服务器发送请求,而不是一台接一台。可以实现吗?回答是当然可以,下面看解决方法
    2014-01-01
  • Laravel框架在本地虚拟机快速安装的方法详解

    Laravel框架在本地虚拟机快速安装的方法详解

    这篇文章主要介绍了Laravel框架在本地虚拟机快速安装的方法,结合实例形式较为详细的分析了Laravel框架的安装步骤、操作注意事项,并附带说明了centos7环境下php7编译安装curl扩展的具体操作步骤,需要的朋友可以参考下
    2018-06-06

最新评论