zoukankan      html  css  js  c++  java
  • phpunit 入门

    话说,使用phpunit还是处于好奇之心,为什么以前一直没使用呢?主要是嫌麻烦,小项目,前后端都是自己写,几个人就完成的工作,没必要弄的那么麻烦。好了,废话不多说,让我们一起来感受下phpunit吧!

    假设,我们有一个项目Demo,Demo是使用Composer做的依赖管理。那么我们只需要以下几步就可完成phpunit的安装和使用:

    一、phpunit安装:

      1、下载phpunit:wget https://phar.phpunit.de/phpunit.phar

      2、修改下载文件的权限:chmod +x phpunit.phar

      3、将phpunit设置为全局变量:mv phpunit.phar /usr/local/bin/phpunit

      4、查看phpunit版本:phpunit -V

    二、项目Demo中引入phpunit组件:

      1、打开composer.json文件,添加"require-dev": {"phpunit/phpunit": "5.7.*"},然后composer install (等同于 composer require "phpunit/phpunit:5.7.*")

      2、执行完步骤1以后,phpunit组件将会存在于vendor/phpunit/phpunit

      3、phpunit的文件目录:

    ├── phpunit.xml
    ├── src
    │   ├── autoload.php
    │   └── PhpUnitClass.php
    └── tests
        └── PhpUnitClassTest.php

      4、phpunit.xml 为核心配置文件,暂不介绍,默认即可

      5、src中存放真实的服务类,当然一般我们都会把项目的服务类放到其他目录

      6、tests存放所有的测试类,所有测试类必须继承PHPUnitFrameworkTestCase;所有测试类命名最好为*Test.php;测试类中的所有方法必须为test*

      7、一个简单的phpunit例子:

      服务类,PhpUnitClass:

    namespace AppService;
    
    class PhpUnitClass
    {
        private $att;
        public function __construct($at)
        {
            echo "phpunitclass init";
            $this->att=$at;
        }
    
        public function say(){
            return "say";
        }
    
    }

      单元测试类,PhpUnitClassTest:

    class PhpUnitClassTest extends PHPUnitFrameworkTestCase
    {
        public function testPhpUnitClassInit(){
            $unit=new AppServicePhpUnitClass("init");
            $this->assertAttributeEquals("init","att",$unit);
        }
        public function testPhpUnitClassSay(){
            $unit=new AppServicePhpUnitClass("init");
            $this->assertEquals("say",$unit->say());
        }
    }

      8、cd进入目录tests,在终端执行:phpunit PhpUnitClassTest 即可执行单元测试

    以上,便是一个phpunit简单的入门总结,方便以后查阅。

    laravel项目自带phpunit,所有的测试类在根目录tests/ 下存放。

  • 相关阅读:
    定时任务时间表达式的规则(自己总结)
    本地vagrant配置虚拟域名的坑
    商派onex本地部署无法进入的问题
    一周一篇文章,立贴为证
    Ecshop安装的坑,建议不要使用!
    MYSQL查询语句优化
    .gitignore文件
    剖析Disruptor:为什么会这么快?(二)神奇的缓存行填充
    Disruptor 为什么这么快?
    一篇文章让你成为 NIO 大师 - MyCAT通信模型
  • 原文地址:https://www.cnblogs.com/lxz88/p/6264463.html
Copyright © 2011-2022 走看看