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

    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. yii中上传图片及文件

    Yii 提供了 CUploadedFile 来上传文件,比如图片,或者文档. 官方关于这个类的介绍 : http://www.yiichina.com/api/CUploadedFile CUploa ...

  2. Caffe 在 Ubuntu 中安装

    Ubuntu Installation General dependencies sudo apt-get install libprotobuf-dev libleveldb-dev libsnap ...

  3. hdoj 4738 Caocao's Bridges【双连通分量求桥】

    Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  4. [置顶] 如何访问web文件夹之外的文件

        在编写项目时,遇到一个如何访问web文件夹之外的文件的问题.因为我要制作一个浏览图片和pdf文件的一个简单网站.但问题是图片的文件夹和pdf文件的文件夹都是其他程序生成的,自然也就是不是网站w ...

  5. String和StringBuilder作为参数的区别

    先见下面实例: public class TestDemo { @Test public void test(){ //String str = "hello"; String s ...

  6. 如何在google test中指定只运行一部分测试

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何在google test中指定只运行一部分测试.

  7. shell脚本实现检測回文字符串

    全部回文字的结构特征例如以下: 假设字符数是偶数,那么它在结构上表现为:一个字符序列连着还有一个字符同样但次序恰好相反的字符序列. 假设字符数为奇数,那么它在结构上表现为:一个字符序列连着还有一个字符 ...

  8. Lucene入门的基本知识(四)

    刚才在写创建索引和搜索类的时候发现非常多类的概念还不是非常清楚,这里我总结了一下. 1 lucene简单介绍  1.1 什么是lucene  Lucene是一个全文搜索框架,而不是应用产品.因此它并不 ...

  9. spring 整合JDBC

    使用Spring提供的三个JDBC模板类(JdbcTemplate.NamedParameterJdbcTemplate.SimpleJdbcTemplate)操作数据库 一.JdbcTemplate ...

  10. Codeforces Round #198 (Div. 2) D. Bubble Sort Graph (转化为最长非降子序列)

    D. Bubble Sort Graph time limit per test 1 second memory limit per test 256 megabytes input standard ...