可以经由过程设备目次和初始化信息,让脚本主动履行对应的测试用例。
应用 PHPUnit 创建我们的测试用例:
- <?php
- class DemoTest extends PHPUnit_Framework_TestCase
- {
- public function testPushAndPop()
- {
- $stack = [];
- $this->assertEquals(0, count($stack));
- array_push($stack, 'foo');
- $this->assertEquals('foo', $stack[count($stack)-1]);
- $this->assertEquals(1, count($stack));
- $this->assertEquals('foo', array_pop($stack));
- $this->assertEquals(0, count($stack));
- }
- }
类名须要以 *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
1/2 1