zoukankan      html  css  js  c++  java
  • PHPUnit测试

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

        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;查询成功,则返回对应的值。

  • 相关阅读:
    使用PullToRefresh实现下拉刷新和上拉加载
    Java RandomAccessFile用法
    Java_io体系之RandomAccessFile简介、走进源码及示例——20
    获取Android设备唯一标识码
    MQTT协议简记
    ORMLite学习入门笔记
    service的生命周期
    android广播(内部类)使用
    intent 几种用法
    intent.setFlags方法中的参数值含义
  • 原文地址:https://www.cnblogs.com/dragon16/p/5761357.html
Copyright © 2011-2022 走看看