澳门皇冠金沙网站-澳门皇冠844网站

热门关键词: 澳门皇冠金沙网站,澳门皇冠844网站

PHP单元测试利器,PHPUNIT深入用法

  上边我们最先编制第四个单元测验用例。在编写测量试验用例时,要遵从如下的phpunit的条条框框:

  而markTestIncomplete也许有一点类似,但有个别分化的是,它是当开采者在编写二个未到位的测量试验方法时选择的,标识出某些测量试验方法还没编写制定作而成功,同样测量检验结果也不会是fail,只是告诉phpunit那些测量检验方法还没编制作而成功而已,例子如下:

图片 1

   上边的代码其实是贯彻连接到贰个点名的服务器的功用,那么我们得以编写测验代码如下:

图片 2<?php
图片 3class Testable
图片 4{
图片 5  public $trueProperty = true;
图片 6  public $resetMe = true;
图片 7  public $testArray = array(
图片 8    'first key' => 1,
图片 9    'second key' => 2
图片 10  );
图片 11  private $testString = "I do love me some strings";
图片 12  public function __construct()
图片 13  {
图片 14  }
图片 15  public function addValues($valueOne,$valueTwo) {
图片 16    return $valueOne $valueTwo;
图片 17  }
图片 18  public function getTestString()
图片 19  {
图片 20    return $this->testString;
图片 21  }
图片 22}
图片 23?>

  图片 24

图片 25<?php
图片 26require_once('RemoteConnect.php');
图片 27class RemoteConnectTest extends PHPUnit_Framework_TestCase
图片 28{
图片 29  public function setUp(){ }
图片 30  public function tearDown(){ }
图片 31  public function testConnectionIsValid()
图片 32  {
图片 33    // test to ensure that the object from an fsockopen is valid
图片 34    $connObj = new RemoteConnect();
图片 35    $serverName = 'www.google.com';
图片 36    $this->assertTrue($connObj->connectToServer($serverName) !== false);
图片 37  }
图片 38}
图片 39?>

   大家编辑的单元测量检验代码初步的框架如下:

2、编写测量检验类继承PHPUnit框架的PHPUnit_Framework_TestCase类)

  上面首先举个简易的例子,代码如下:

  在上一篇小说中,已经主导教学了有个别主干的phpunit中的断言的应用,这里以贰个事例,下边是三个类的代码:

..    2个测量试验方法都运作成功

当你遇上以上这么些让你失落的气象时,你一定会想能有怎样越来越好的方法去消除呢?办法当然是有个别!那正是选拔单元测验。单元测量检验不但能够在必然水平上消除上述咳嗽的标题,何况能让代码变的轻便保证,还可以能让你越多地对代码进行重构。

   2、更加尖锐摸底phpunit中的断言

做到后,或自动生成PHPUnit框架代码:

  一旦您编写好单元测量检验用例,当您须要修改你的代码时,你要做的事体正是重复运维你的单元测量检验用例并注重这么些单元测验用例能无法通过,假设经过了的话,证大顺码是没问题的。

图片 40<?php
图片 41public function testThisMightHaveADb()
图片 42{
图片 43  $myObject->createObject();
图片 44  try {
图片 45    $db = new Database();
图片 46    $this->assertTrue($db->rowExists());
图片 47  } catch (DatabseException $e) {
图片 48    $this->markTestSkipped('This test was skipped because there was a database problem');
图片 49  }
图片 50}
图片 51?>

   /**
    * Constructs the test case.
    */
    public function __construct()  //构造函数
    {
       // TODO Auto-generated constructor
    }

  3、以为编写单元测验代码枯燥无味。技士的个性是焚林而猎问题,而过多技术员以为在胆颤心惊的编码专门的学问时,还要编写单元测量检验代码,会很单调。但要知道的是,假如能通过编写制定单元测验在很早的阶段就能够尽大概开掘代码中多的一无可取的话,那么既节省时间降低了失误,何乐不为?

  在phpunit中,有三个有效的格局markTestSkipped和markTestIncomplete。它们能容许你编写的单元测量检验中不单是只有由此和停业二种结果。markTestSkipped能让PHPUNIT不去实行有些已经编写制定好的测量试验方法。比如说明,比如上面包车型地铁主次:

 在命令行下使用PHPUnit进行单元测量检验

  3 在三个测量检验用例中的全体的测量检验方法,在命名时都应有以test 测验方法名去命名,如testDoesLikeWaffles(),要留神的是该格局必须是宣称为public类型的。当然能够在你的测量试验用例中饱含private的主意,但它们不可能被phpunit所调用。

   在上面包车型客车次序中,是一个接连数据库后,推断数据是还是不是留存的测量试验方法,但只要虚拟数据库的连天万分的话,则应该在抛出拾分时,使用markTestSkipped提议该测量试验方法应该是被忽视的,因为现身了特别,而专注的时,此时有相当大希望您写的代码是不利的,只然则是出现了特别而已,那样phpunit在出口时就不会只是简短的输出fail。

   /**
    * Prepares the environment before running a test.
    */
    protected function setUp()        //测量试验前安顿测验遭遇
    {
        parent::setUp();
       
       // TODO Auto-generated DemoTest::setUp()
       
        $this->Demo = new Demo(/* parameters*/);
    }

   在地点的代码中,由于接二连三了PHPUnit_Framework_TestCase类,因而在setUp和tearDown方法中,无需编写制定任何代码。SetUp方法是在各样测试用例运转前拓展局地起初化的干活,而tearDown则在每一种测验用例运营后张开部分诸如财富的放出等职业。在测量检验方法中,通过行使phpunit的断言assertTrue去判别所重返的布尔值是或不是为真,这里是透过调用RemoteConnect.php中的connectToServe方法去看清是或不是连接上服务器。

图片 52<?php
图片 53public function testAreNotEnoughHours()
图片 54{
图片 55  $this->markTestIncomplete("There aren't enough hours in the day to have my tests go green");
图片 56  $trueVariable = true;
图片 57  $this->assertTrue($trueVariable);
图片 58}
图片 59?>

      图片 60

您或许感兴趣的篇章:

  • Windows下安装PHP单元测量试验蒙受PHPUnit图像和文字化教育程
  • PHP单元测量检验利器 PHPUNIT深切用法(三)
  • PHP单元测验利器 PHPUNIT浓密用法(二)
  • php单元测量检验phpunit入门实例教程
  • laravel单元测量试验之phpUnit中old()函数报错化解
  • Windows下wamp php单元测量试验工具PHPUnit安装及更换日志文件配置情势
  • PHP单元测量试验PHPUnit轻巧用法示例
  • ThinkPHP分组下自定义标签库实例
  • ThinkPHP使用斯马特y第三方插件方法小结
  • thinkPHP框架单元测验库tpunit用法示例

图片 61<?php
图片 62class TestableTest extends PHPUnit_Framework_TestCase
图片 63{
图片 64  private $_testable = null;
图片 65  public function setUp()
图片 66  {
图片 67    $this->_testable = new Testable();
图片 68  }
图片 69  public function tearDown()
图片 70  {
图片 71    $this->_testable = null;
图片 72  }
图片 73  /** test methods will go here */
图片 74}
图片 75?>

3、运维单元测量试验

  即使您想透过手动情势去安装,能够参照他事他说加以考察phpunit的手册去安装(

  接下去,初始编写制定一些预知去测量试验,首先看assertTrue和assertFalase:

Xunit框架实施顺序:

  2 测量试验用例的名字最佳是使用约定俗成的格式,即在被测量检验类的背后加上”Test”,比方要测验的类为RemoteConnect,则测量试验用例的命名叫RemoteConnectTest。

你可能感兴趣的稿子:

  • Windows下安装PHP单元测量检验遭遇PHPUnit图像和文字教程
  • PHP单元测验利器 PHPUNIT深刻用法(三)
  • PHP单元测量检验利器 PHPUNIT初探
  • php单元测量试验phpunit入门实例教程
  • laravel单元测验之phpUnit中old()函数报错解决
  • Windows下wamp php单元测量检验工具PHPUnit安装及更动日志文件配置情势
  • PHP单元测量检验PHPUnit轻巧用法示例
  • ThinkPHP分组下自定义标签库实例
  • ThinkPHP使用斯马特y第三方插件方法小结
  • thinkPHP框架单元测量试验库tpunit用法示例

OK  富含2个测量检验方法,4个断言

图片 76<?php
图片 77class RemoteConnect
图片 78{
图片 79  public function connectToServer($serverName=null)
图片 80  {
图片 81    if($serverName==null){
图片 82      throw new Exception(“That's not a server name!”);
图片 83    }
图片 84    $fp = fsockopen($serverName,80);
图片 85    return ($fp) ? true : false;
图片 86  }
图片 87  public function returnSampleObject()
图片 88  {
图片 89    return $this;
图片 90  }
图片 91}
图片 92?>

   在上一篇小说中,已经介绍了setUp方法和tearDown方法,这里的setUp方法中,创设了Testable()实例并保存在变量$_testable中,而在tearDown方法中,销毁了该目的。

工具安装参见在线手册文书档案 

  编写制定第三个单元测验用例

图片 93<?php
图片 94public function testTruePropertyIsTrue()
图片 95{
图片 96  $this->assertTrue($this->_testable->trueProperty,"trueProperty isn't true");
图片 97}
图片 98public function testTruePropertyIsFalse()
图片 99{
图片 100  $this->assertFalse($this->_testable->trueProperty, "trueProperty isn't false");
图片 101}
图片 102?>

在zend studio中使用PHPUnit框架

本文由澳门皇冠金沙网站发布于编辑程序,转载请注明出处:PHP单元测试利器,PHPUNIT深入用法