• PHPUnit 组织测试


    首先是目录结构

    源文件夹为 src/ 

    测试文件夹为 tests/

    User.php

    <?php
    class Errorcode
    {
        const NAME_IS_NULL = 0;
    }
    
    class User
    {
        public $name;
        public function __construct($name)
        {
            $this->name=$name;
        }
    
        public function Isempty()
        {
    
            try{
                if(empty($this->name))
                {
                    throw new Exception('its null',Errorcode::NAME_IS_NULL);
                }
            }catch(Exception $e){
                return $e->getMessage();
            }
    
            return 'welcome '.$this->name;
        }
    }

    对应的单元测试文件  UserTest.php

    <?php
    use PHPUnitFrameworkTestCase;
    
    class UserTest extends TestCase
    {
        protected $user;
        public function setUp()
        {
            $this->user = new User('');
        }
        public function testIsempty()
        {
            $this->user->name='mark';
            $result =$this->user->Isempty();
            $this->assertEquals('welcome mark',$result);
    
            $this->user->name='';
            $results =$this->user->Isempty();
            $this->assertEquals('its null',$results);
    
        }
    
    
    }

    第二个单元测试代码因为要引入 要测试的类  这里可以用 自动载入 避免文件多的话 太多include  

    所以在src/ 文件夹里写 autoload.php

    <?php
    
    function __autoload($class){
        include $class.'.php';
    }
    
    spl_autoload_register('__autoload');

    当需要User类时,就去include User.php。写完__autoload()函数之后要用spl_autoload_register()注册上。

    虽然可以自动载入,但是要执行的命令变得更长了。

    打开cmd命令如下

    phpunit --bootstrap src/autoload.php tests/UserTest
    

    所以我们还可以在根目录写一个配置文件phpunit.xml来为项目指定bootstrap,这样就不用每次都写在命令里了。

    phpunit.xml

    <phpunit bootstrap="src/autoload.php">
    </phpunit>

    然后

    打开cmd命令 执行MoneyTest 命令如下

    phpunit tests/UserTest
    

    打开cmd命令 执行tests下面所有的文件 命令如下  

    phpunit tests
    

      

  • 相关阅读:
    POJ 2411 状态压缩递,覆盖方案数
    POJ 2774 最长公共子串
    POJ 1743 不可重叠的最长重复子串
    POJ 3294 出现在至少K个字符串中的子串
    POJ 3261 出现至少K次的可重叠最长子串
    POJ 1741/1987 树的点分治
    HDU1556 Color the ball
    解决linux系统时间不对的问题
    CentOS 6.9使用Setup配置网络(解决dhcp模式插入网线不自动获取IP的问题)
    Linux网络配置(setup)
  • 原文地址:https://www.cnblogs.com/foreversun/p/6837147.html
Copyright © 2020-2023  润新知