作家
登录

PHP单元测试与数据库测试

作者: 来源: 2017-04-07 15:06:10 阅读 我要评论

  •             <directory>dir1</directory> 
  •         </testsuite> 
  •         <testsuite> 
  •             <directory>dir2</directory> 
  •         </testsuite> 
  •     </testsuites> 
  • </phpunit>  
  • 可以经由过程设备目次和初始化信息,让脚本主动履行对应的测试用例。

    应用 PHPUnit 创建我们的测试用例:

    1. <?php 
    2.  
    3. class DemoTest extends PHPUnit_Framework_TestCase 
    4.      public function testPushAndPop() 
    5.         { 
    6.             $stack = []; 
    7.             $this->assertEquals(0, count($stack)); 
    8.      
    9.             array_push($stack, 'foo'); 
    10.             $this->assertEquals('foo', $stack[count($stack)-1]); 
    11.             $this->assertEquals(1, count($stack)); 
    12.      
    13.             $this->assertEquals('foo', array_pop($stack)); 
    14.             $this->assertEquals(0, count($stack)); 
    15.         } 
    16.  

    类名须要以 *Test 结尾,持续 PHPUnit_Framework_TestCase。须要测试的办法须要一 test 开首,注解是一个测试办法。

    一般常用测试无非就是 "断言",说白了,就是看看产生的结不雅是不是相符预期,如不雅是,那就证实,已经测试经由过程,不然,掉败,解释逻辑处理,存在必定的差别,导致不相符预期。

    初始化

    当我们的测试对象持续了 PHPUnit 后,初始化办法就须要应用它本身供给的 setUp 办法,代表类初始化,可以在初始化办法中初始化一些资本,或者加载。

    数据库测试

    除了以上基本的测试之外,关键一点应当在动态的数据,须要去测试吗,如不雅须要,那应当怎么去测试? 临盆情况,也须要如许测试? 这个曾经困惑这我的问题,已经解开。

    解答:

    composer 中,有 --no-dev 选项,用来安排临盆情况,避免测试情况的数据或者代码跑在了临盆情况下。并且临盆情况上数据库操作是没有很高权限的操作,如果有的话,你得归去面壁思虑一下了。

    dbunit 每次测试都重置数据,其实袈溱临盆情况下,就重置不了了,第一个是composer --no-dev 已经没有履行权力了,如果有,数据库已经不许可清空操作了。

    如果临盆情况不须要这些器械,那么竽暌功该怎么测试。其实须要有一个模仿临盆情况的测试情况,去模仿临盆情况测试,当所有测试都OK没有问题,那么就可以宣布到临盆情况上,如果严格一些,临盆情况也是须要一轮测试。

    基本应用

    更多测试可看: 数据库测试

    getConnection 办法是获取数据库连接,持续数据库测试后,必须实现的一个办法,并且须要返回 PHPUnit_Extensions_Database_DB_IDatabaseConnection 对象,可以模仿上述写法即可。

    getDataSet 办法是数据集,在创建数据库测试的时刻,主动填充,测试,和删除。他履行的流程是,每个测试用例,都邑填充一次,以包管不会被其他测试用例影响。当当前测试用例测试完成后,会 truncate 掉落填充的数据。

    数据集支撑挺多种办法,可以自定义数组,yml,xml,可以根据本身的应用习惯,自定义填充数据。数据集可看: 点我

    履行脚本 php vendor/bin/phpunit

    然后去对应查看本身的数据表,是否多了一些填充的数据呢?

    抽象本身的数据库测试类

    在很多情况下,我们的营业可谓是各类各样吧,假使 phpunit 供给的数据库测试还不克不及知足或者不敷便利的时刻,就须要扩大本身的数据库测试,来达到本身想要的效不雅。


      推荐阅读

      通过Oracle sql developer工具 从sqlserver迁移数据到oracle

    目标:用于建立新的用户进行连接;履行移植过程中的DDL语句;验证全部过程是不是成功。序言我们在实施过程中,会碰到黉舍其他营业体系应用的是sql server库情况;一般如许的体系在和我们的体>>>详细阅读


    本文标题:PHP单元测试与数据库测试

    地址:http://www.17bianji.com/lsqh/34646.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)