>백엔드 개발 >PHP 문제 >PHP 단위 테스트 작성 방법

PHP 단위 테스트 작성 방법

尚
원래의
2019-10-21 14:33:223945검색

PHP 단위 테스트 작성 방법

Windows 개발 환경에서는 PHP 단위 테스트에 PHPUnit을 사용할 수 있습니다.

추천 자료: php 서버

PHPUnit 설치

작성기 방법 사용 PHPUnit을 설치하려면 여기를 참조하세요

composer require --dev phpunit/phpunit ^6.2

phpunit 테스트 및 로깅을 위해 Monolog 로그 패키지를 설치하세요.

composer require monolog/monolog

설치 후 콤보저.json 파일에 이미 두 개의 확장 팩이 있음을 확인할 수 있습니다.

"require": { 

    "monolog/monolog": "^1.23",

   },

"require-dev": {

       "phpunit/phpunit": "^6.2"

   },

PHPUnit 간단한 사용법# 🎜 🎜#

1. 단일 파일 test

새 파일 StackTest.php를 만들고 다음과 같이 편집합니다.

<?php
/**
 * 1、composer 安装Monolog日志扩展,安装phpunit单元测试扩展包
 * 2、引入autoload.php文件
 * 3、测试案例
 *
 *
 */
namespace App\tests;
require_once __DIR__ . &#39;/../vendor/autoload.php&#39;;
define("ROOT_PATH", dirname(__DIR__) . "/"); 
use Monolog\Logger;
use Monolog\Handler\StreamHandler; 
use PHPUnit\Framework\TestCase;
class StackTest extends TestCase
{
    public function testPushAndPop()
    {
        $stack = [];
        $this->assertEquals(0, count($stack));
        array_push($stack, 'foo');
 
        // 添加日志文件,如果没有安装monolog,则有关monolog的代码都可以注释掉
        $this->Log()->error('hello', $stack);
 
        $this->assertEquals('foo', $stack[count($stack)-1]);
        $this->assertEquals(1, count($stack)); 
        $this->assertEquals('foo', array_pop($stack));
        $this->assertEquals(0, count($stack));
    }
 
    public function Log()
    {
        // create a log channel
        $log = new Logger('Tester');
        $log->pushHandler(new StreamHandler(ROOT_PATH . 'storage/logs/app.log', Logger::WARNING));
        $log->error("Error");
        return $log;
    }
}
코드 설명:

  1. StackTest는 테스트 클래스입니다

  2. StackTest는 PHPUnitFrameworkTestCase에서 상속됩니다#🎜 🎜##🎜 🎜 #

    테스트 메서드 testPushAndPop(), 테스트 메서드에는 일반적으로 test로 시작하는 공개 권한이 있어야 합니다. 그렇지 않으면 @test 주석을 추가하도록 선택할 수 있습니다
  3. #🎜 🎜##🎜 🎜#
  4. 테스트 메서드에서는 AssertEquals()와 같은 어설션 메서드를 사용하여 실제 값과 예상 값이 일치하는지에 대한 어설션을 만듭니다.

  5. 명령줄 실행:

    phpunit 명령 테스트 파일 이름 지정
  6.  framework#  ./vendor/bin/phpunit tests/StackTest.php
     
    // 或者可以省略文件后缀名
    //  ./vendor/bin/phpunit tests/StackTest
실행 결과:

➜  framework# ./vendor/bin/phpunit tests/StackTest.php
PHPUnit 6.4.1 by Sebastian Bergmann and contributors. 
.                                                                   1 / 1 (100%)
Time: 56 ms, Memory: 4.00MB
OK (1 test, 5 assertions)

위 내용은 PHP 단위 테스트 작성 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.