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

    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. 《Effective C++》学习笔记条款13 以对象管理资源

    条款 13 :以对象管理资源 例:      voidf()      {           Investment *pInv = createInvestment();           ... ...

  2. 解决拦截器对ajax请求的的拦截

    拦截器配置: public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object obj) ...

  3. mysql查询随机几条数据(速度快)

    MySql查询随机几条数据 想到了 Max RAND 这几个函数 用以下2种办法都可以实现查询. 速度还行. 几十万数据左右, 没有什么问题. SELECT * FROM `news` WHERE i ...

  4. Image控件播放 GIF文件

    uses Vcl.Imaging.GIFImg;procedure TForm1.Button2Click(Sender: TObject);begin    Image1.Picture.LoadF ...

  5. 经典SQL语句大全之数据开发

    数据开发 1.按姓氏笔画排序:Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as //从少到多 ...

  6. android79 Fragment生命周期

    切换成01时依次调用onCreate,onStart,onResume方法,切换到03的时候01依次onPause,onStop,onDestroy,03依次onCreate,onStart,onRe ...

  7. careercup-链表 2.6

    2.6 给定一个有环链表,实现一个算法返回环路的开头结点. 类似leetcode中 Linked List Cycle II C++实现代码: #include<iostream> #in ...

  8. windows mysql 中文乱码和中文录入提示太大错误的解决方法

    今天操作mysql的时候很郁闷,因为修改默认字符集搞了半天,终于弄成了(关于如何把windows的默认字符集设置成功,可以参看另一篇博文,最终在mysql中输入show variables like ...

  9. android开发布局优化之ViewStub

    使用ViewStub可以延迟加载一个布局文件,提高显示速率.刚开始接触到,记录下来. 关于viewstub的使用,我们可以在不同的布局中使用,比如可以根据设备的大小动态决定显示哪个界面. viewst ...

  10. GUI编程笔记(java)04:GUI(HelloWorld)窗体案例

    1.Frame 在JAVA中,Frame是一种控件,可作为父窗体加载其他swing控件.案例: package cn.itcast_01; import java.awt.Frame; public ...