PHP 테스트 프레임 워 크 PHPUnit 조직 테스트 조작 예시

이 사례 는 PHP 테스트 프레임 워 크 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 PHPUnit\Framework\TestCase;
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함수
자동 으로 불 러 올 수 있 지만 실행 할 명령 이 더 길 어 졌 습 니 다.
cmd 명령 을 다음 과 같이 엽 니 다.

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

그래서 우 리 는 루트 디 렉 터 리 에 설정 파일 phpunit.xml 를 써 서 프로젝트 에 boottstrap 을 지정 할 수 있 습 니 다.그러면 매번 명령 에 쓰 지 않 아 도 됩 니 다.
phpunit.xml

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

그리고
cmd 명령 을 열 고 MoneyTest 명령 을 실행 하려 면 다음 과 같 습 니 다.

phpunit tests/UserTest

cmd 명령 을 열 어 tests 아래 의 모든 파일 명령 을 수행 합 니 다.

phpunit tests

더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기