今天单元测试测到一个有点坑的小问题:

    public function testUpdataStatusFailForNegative()
{
// // Remove the following lines when you implement this test.
// $this->markTestIncomplete(
// 'This test has not been implemented yet.'
// );
$result = $this->object->updataStatus(['id' => 1], [ 'status' => 'sd', ‘send_time' => 'asdzxc']);
$this->assertEquals(false,$result);
$queryTable = $this->getConnection()->createQueryTable('wp_template_message_log', 'SELECT * FROM wp_template_message_log');
$expectedTable = $this->createMySQLXMLDataSet(TEST_ROOT . "/data/addons/TemplateMessage/Model/TemplateMessageLogModel/wp_template_message_log.xml")
->getTable("wp_template_message_log");
$this->assertTablesEqual($expectedTable, $queryTable);
}

如果你的数据库里要修改的字段是int型而不是string类型,TP里数据更新(save)时,你传入了string类型,TP会把你要更新的字段值强制转换为零而不报错,如果数据没有更新(与原数据相同),数据中影响的条数为零 ,返回值为 0。返回值直接用false来判断的话,单元测试就会不通过,但是数据库里什么都没有改,被坑了好长一段时间。又专门找了一下TP返回值的问题。大家可以看一下:

create返回值:如果创建发生错误,返回false;成功则返回创建的数据。

add 返回值:如果添加发生错误,返回false;成功:如果主键是自动增长型,返回值为新增记录Id值;否则返回true。

delete 返回值:如果删除发生错误,返回false;成功则返回true。

save 返回值: 如果更新发生错误,返回false;成功返回影响的记录数(有可能为0,即数据未改变)。

find 返回值:如果查询发生错误,返回false;查询结果为空返回NULL,查询成功则返回一个关联数组。

select 返回值:如果查询发生错误,返回false;查询结果为空,则返回NULL,否则返回二维数组。

getField 返回值:如果查询发生错误,返回false;

        查询成功:getField($field):$field为一个字段,返回该字段的第一行的值;

             getField($field,true):$field为一个字段,返回包含该字段的一维数组;

             getField($field):$field为多个字段 默认返回一个关联数组,以第一个字段的值为索引;

             getField($fields,”:”):$field为多个字段,使用连接符返回的结果则是一个索引数组,键名是id值,键值则是account:nickname连接组成的字符串。

Count 、Max、Min 、Avg 、Sum返回值:如果查询出错返回false;查询成功,则返回对应的值。

PHPUnit测试的更多相关文章

  1. phpunit测试学习 2 分类总结断言涉及哪些方面

    11:27 2015/12/9phpunit测试学习 2,  分类总结断言涉及哪些方面先推荐windows快速打开某处路径下的cmd,进入测试状态:可以在文件夹中,按住Shift+鼠标右键,这时候你就 ...

  2. phpunit测试学习 1:一点简单的扼要有用的东西的总结 一点入门认识

    16:45 2015/12/8phpunit测试学习 1:一点简单的扼要有用的东西的总结  一点入门认识 具体的入门安装和入门实践请参照文中的推荐博客或网上其他博客推荐博客,我感觉这几篇博客写得很不错 ...

  3. phpunit测试成功 phpunit测试实践代码

    16:12 2015/12/8phpunit测试成功,代码写在www目录下,以类名命名代码文件,我的文件名为 ArrayTest.php,类名为ArrayTest,内部写了简单的测试代码:<?p ...

  4. 第二节 PHPUnit测试的剖析

    现在,让我们仔细看看测试结构的样子. 让我们从一个简单的测试用例开始,它将显示基本的PHPUnit测试结构. 以下代码片段是测试用于排序数组的两个PHP函数的一个非常基本的示例:asort()用于对数 ...

  5. phpunit 测试框架安装

    PHPUnit是一个轻量级的PHP测试框架.它是在PHP5下面对JUnit3系列版本的完整移植,是xUnit测试框架家族的一员(它们都基于模式先锋Kent Beck的设计).来自百度百科 一.下载wg ...

  6. 使用phpunit测试yaf项目操作步骤

    yaf + phpunit 使用phpunit对yaf进行测试的核心在于bootstrip文件的配置. *1. 首先在项目目录下创建tests文件,并在tests中创建phpunit.xml < ...

  7. Laravel 项目运行 phpunit 测试结果只显示点号

    在laravel 项目的根目录下,运行 phpunit 只显示 点号的情况 我尝试将 tests/Unit 和 tests/Feature 目录将 ExampleTest.php 文件删除,然后再运行 ...

  8. Windows10 + IntelliJ IDEA 2017.3.2 + wamp2e + Yii + PHPunit 搭建测试环境

    一.环境 系统: windows10 WampServer:  wampserver2.2e-php5.3.13-httpd2.2.22-mysql5.5.24-32b.exe IDE:  Intel ...

  9. 使用 PHPUnit 和 Selenium 进行测试

    适用于 PHP 的 NetBeans IDE 支持 PHPUnit 自动测试.通过 PHPUnit,NetBeans IDE 可为 PHP 提供代码覆盖率,这与 IDE 为 Python 提供的代码覆 ...

随机推荐

  1. 【转】shell 教程——06 Shell变量:Shell变量的定义、删除变量、只读变量、变量类型

    Shell支持自定义变量. 定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编 ...

  2. 分享一个dapper简单封装

    using System;using System.Data.Common;using System.Linq;using Dapper;using MySql.Data.MySqlClient; p ...

  3. ios 利用Reveal来调试界面1 --模拟器(步骤详解)

    Reveal是一个程序界面调试工具,可以调试iOS apps和tvOS apps.使用Reveal,我们可以在开发时动态地查看和修改应用程序的界面.避免每次修改UI的时候都要重新运行程序.接下来按照规 ...

  4. sql优化-hint的作用

    目前,oracle采用的是CBR优化器,所以在有些时候,机器会按照自己的意愿去执行sql,当然oracle是根据本身的一些信息来做决定的,比如:统计信息.但有些时候,机器并不一定会按照我们预想的那样去 ...

  5. 【转】G40-70、G50-70联想小新笔记本SR1000随机Linux改Windows 7系统操作指导

    http://support1.lenovo.com.cn/lenovo/wsi/htmls/detail_20140505150749705.html 适用范围:G40-70,G50-70联想小新笔 ...

  6. 追踪CPU跑满 堆栈调试

    http://blog.donghao.org/2014/04/24/%E8%BF%BD%E8%B8%AAcpu%E8%B7%91%E6%BB%A1/

  7. PureMVC(JS版)源码解析(七):Mediator类

    之前的博文中,我们分析了SimpleCommand类和MacroCommand类,这两个类用作"业务逻辑(business logic)"处理,今天,我们讲一些和UI界面相关联的M ...

  8. Android开发之UI的编程方式创建

    我们知道,android中一个activity对应一个xml的UI配置文件,除了用xml文件配置的方式创建用户界面外,还可以使用代码编程的方式来创建一个用户界面.如果用户界面需要在运行过程中动态生成的 ...

  9. ubuntu 14.04 编译安装 nginx

    下载源码包 nginx 地址:http://nginx.org/en/download.html  下载nginx 1.4.7 编译前先安装两个包: 直接编译安装会碰到缺少pcre等问题,这时候只要到 ...

  10. Eclipse将项目部署tomcat的webapps目录

      Eclipse将项目部署tomcat的webapps目录 >>>>>>>>>>>>>>>>>& ...