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

    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. 【转】如何实现一个malloc

    任何一个用过或学过C的人对malloc都不会陌生.大家都知道malloc可以分配一段连续的内存空间,并且在不再使用时可以通过free释放掉.但是,许多程序员对malloc背后的事情并不熟悉,许多人甚至 ...

  2. IOS开发之内存管理--dealloc该写些什么

    在非ARC开发环境中,dealloc是类释放前,清理内存的最后机会.到底那些变量和属性该释放呢,一些特殊的类(nstimer,observer)该怎么释放.需要注意的是不释放会引起内存泄露,过度释放也 ...

  3. 高性能MySql进化论(十一):常见查询语句的优化

    总结一下常见查询语句的优化方式 1        COUNT 1.       COUNT的作用 ·        COUNT(table.filed)统计的该字段非空值的记录行数 ·         ...

  4. jetty之安装,配置,部署,运行

    上篇文章中详解了关于什么是jetty,后续文章主要是介绍jetty的使用.本章介绍jetty环境的配置及部署war包. 1. 安装 1. 先下载一个jetty的压缩包,下载地址:http://www. ...

  5. JMS消息类型模型

    JMS有两种消息类型模型,一种是P2P(Point To Point), 另一种是Pub/Sub(Publisher/Subscriber),二者之间的主要区别在于消息是否支持重复消费. P2P模型中 ...

  6. iOS UILabel:宽度固定,自动高度显示全部文字

    desclabel.width = self.view.width - (leftOffset*2); desclabel.lineBreakMode = NSLineBreakByWordWrapp ...

  7. tcpdump来抓取执行的sql语句

    # tcpdump -n -nn -tttt -i eth1 -s 65535 'port 3306' -w tcpdump_mysql.ret -C 100 一个TCP包中包含多个mysql协议包, ...

  8. 6步骤实现CentOS系统环境精简优化

    6步骤实现CentOS系统环境精简优化 发布时间:2014-11-03 14:59:27   编辑:AHLinux.com 第一步.删除不必要的自带软件包yum remove Deployment_G ...

  9. HDU 2876 Ellipse, again and again

    转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents 题目链接:http://acm.hdu.edu.cn/showproblem.php ...

  10. c pointer and array

    Pointer:  A pointer is a variable that contains the address of a variable. if c is a char and p is a ...