PHP 테스트 프레임 워 크 PHPUnit 조직 테스트 조작 예시
2633 단어 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 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.