• php 单元测试


      前几天把个人上半年计划拿出来看了一下,有学习单元测试的内容,今天没什么事情,就看了一下phpunit!安装phpunit是件很蛋疼事情,尤其在window下面,记得当初费了很大劲才装上,这里就不介绍怎么装的了,你可以去百度一下,首先装上pear,再装phpunit。

      装好了phpunit,可以写个例子练习!

    require_once 'PHPUnit/Framework/TestCase.php';
    
    
    /**
    * test
    */
    class TestAdd extends PHPUnit_Framework_TestCase 
    {
        /**
        *
        */
        public function setUp()
        {
            parent::setUp();
            
        }
        
        public function tearDown()
        {
            parent::tearDown();
        }
        
        public function testTrue() 
        {
            $this->assertContains('baz', 'foobar');
        }
        
        public function testFloat()
        {
            $this->assertEquals(1.0, 1.2, '相等', 0.2);
        }

     setup 可以在里面初始化一些变量,tearDown 是测试完后,释放setUp里面变量所占的内存! assertEquals 是个很常用的方法!

    assertEquals(mixed $expected, mixed $actual[, string  $message = '']) 第一个是期望的值,第二是实际的值。你看的我们上面例子,在比较浮点数的时候,

    assertEquals(float $expected, float $actual[, string $message = '', float $delta = 0]),有个$delta ,这个参数的意思是我们期望值和实际值的差的最大值,如果小于$delta 则视为通过。其他的判断方式可以到 http://www.phpunit.de/manual/current/en/  去查找

    上面通过命令行输出:

     

    第一个"F"表示失败,第二个"." 表示通过!

     集成测试

      你一下测试一个项目所有的测试文件,而不是单个测试! 你可以通过 继承 PHPUnit_Framework_TestSuite来实现

    require_once 'TestAdd.php';
    require_once 'TestArray.php';
    /**
    * test
    */
    class TestSuite extends PHPUnit_Framework_TestSuite 
    {
        public function __construct() 
        {
            $this->setName('testSuite');
            $this->addTestSuite('TestAdd');
            $this->addTestSuite('TestArray');
        }
        public static function suite()
        {
            return new self();
        }
    }

     这样就可以测试 TestAdd.php和TestArray 文件了! phpunit 里面很多内容,大多数用不到! 
     

  • 相关阅读:
    Python实现MapReduce,wordcount实例,MapReduce实现两表的Join
    structure needs cleaning
    Lifecycle of an ASP.NET MVC 5 Application
    ASP.NET Integration with IIS 7
    Execution order of modules in IIS7
    Assembly Binding redirect: How and Why?
    Cannot See Worker Processes Icon in IIS
    What is the main difference between a key, an IV and a nonce?
    核心玩法的三要素
    ruby各种循环输出数组元素
  • 原文地址:https://www.cnblogs.com/liuzhang/p/3038561.html
Copyright © 2020-2023  润新知