PHPUnit은 PHP 네이티브 오류 처리를 예외로 변환하여 테스트 중에 코드 실행 흐름을 변경할 수 있습니다. 함수를 사용하여 코드를 테스트 할 때 문제가 발생할 수 있습니다.
PHPUNIT는 오류를 예외로 변환하여 프로덕션 환경과의 개발 및 테스트에서 코드가 다르게 행동하게합니다. 오류가 발생하면 실행 프로세스가 변경되기 때문입니다.trigger_error()
trigger_error()
블록의 시작 부분에서 실행이 계속되며, 이는 예외가 발생한 지점 직후에 발생하거나 발생하지 않을 수 있습니다. 이러한 행동의 몇 가지 예를 살펴 보겠습니다. 우선, 오류입니다.
출력 :
trigger_error()
를 유용하게 처리하는지 테스트하는 것이 불가능합니다. phpUnit 동작의 부작용
이 오류-예고로 변환하면 코드가 생산 환경과는 다른 개발 및 테스트에서 다르게 행동하게됩니다. 예는 다음과 같습니다.
통화 출력 NULL이 사용자 정의 오류 핸들러를 사용하여 발생하기 때문이 아니라 오류 핸들러가 예외를 던지기 때문입니다. 이 예제에 표시된 오류 핸들러가이를 수행하지 않으면 첫 번째
솔루션
FAQ (FAQ)
옵션을 사용할 수 있습니다. 테스트 중에 잡힌 오류 또는 예외를 포함하여보다 자세한 출력이 제공됩니다.
PHPUNIT는 예외를 처리하는 데 특별히 사용되는 일련의 주장을 제공합니다. 가장 일반적으로 사용되는 것은 이며, 이는 당신이 던질 것으로 예상되는 예외 유형을 지정하는 데 사용할 수 있습니다. 테스트 중에 지정된 예외가 발생하면 테스트가 통과됩니다. 그렇지 않으면 테스트가 실패합니다. 이를 통해 오류 조건의 올바른 처리를 구체적으로 확인하는 테스트를 작성할 수 있습니다.
Q3 : PHP에서 오류보고는 어떻게 작동합니까?
Q4 : phpUnit의 예외를 테스트하는 방법은 무엇입니까?
이며, 트리거 할 오류 유형을 지정하는 데 사용할 수 있습니다. 테스트 중에 지정된 오류가 트리거되면 테스트가 통과됩니다. 그렇지 않으면 테스트가 실패합니다. 이를 통해 오류 조건의 올바른 처리를 구체적으로 확인하는 테스트를 작성할 수 있습니다.
Q8 : phpUnit에서 오류 조건을 테스트하는 방법은 무엇입니까? PHPUNIT는 오류 조건을 테스트하는 몇 가지 방법을 제공합니다. 메소드를 사용하면 트리거 할 오류 유형을 지정할 수 있습니다. 이며, 이는 트리거 할 경고 유형을 지정하는 데 사용할 수 있습니다. 테스트 중에 지정된 경고가 트리거되면 테스트가 통과됩니다. 그렇지 않으면 테스트가 실패합니다. 이를 통해 경고 조건의 올바른 처리를 구체적으로 확인하는 테스트를 작성할 수 있습니다.
Q10 : PhPunit에서 데이터 제공 업체를 사용하는 방법은 무엇입니까?
<code class="language-php"><?php
error_reporting(E_ALL | E_STRICT);
echo "Before warning\n";
trigger_error("Danger Will Robinson!", E_USER_WARNING);
echo "After warning\n";
?></code>
호출 (이 기간 동안 오류를 예외로 변환하는 사용자 정의 오류 핸들러가 적용됩니다)은 NULL을 출력합니다. 두 번째 <code>Before warning
PHP Warning: Danger Will Robinson! in /home/matt/error_handler.php on line 4
After warning</code>
var_dump()
var_dump()
(각 테스트 방법 앞에서 실행)는 오류 핸들러를 설정하는데, 이는 각 오류에 대한 정보를 배열에 저장하는 동일한 클래스의 다른 메소드입니다. 그런 다음 다른 방법 (예 : var_dump()
)에 의해이 오류 메시지에 대한 어설 션을 수행하고 예상 오류와 비교하여 트리거 된 오류와 같은 출력 관련 디버그 정보를 수행합니다. 다른 유용한 어설 션 유형으로는 논리적 역전 (즉, 어설 션이 특정 오류를 유발하지 않음), 메시지를 정규 표현식과 일치시키는 오류 또는 트리거 된 오류 수가 포함됩니다. var_dump()
결론 <code class="language-php"><?php
try {
echo "Before exception\n";
throw new Exception("Danger Will Robinson!");
echo "After exception\n";
}
catch (Exception $e) {
echo "In catch block\n";
}
?></code>
phpunit을 사용하여 오류 조건을 테스트하기 위해 setUp()
Q1 : PHPUnit이 콘솔에 오류가 표시되지 않는 이유는 무엇입니까? assertError()
--debug
expectException()
Q2와 동일합니다. error_reporting()
Q7 : PhPunit에서 테스트를 디버그하는 방법은 무엇입니까? display_errors
PHPUNIT는 디버깅 테스트를위한 몇 가지 옵션을 제공합니다. , expectError()
메소드를 사용하면 트리거 할 경고 유형을 지정할 수 있습니다. 테스트 중에 지정된 오류 또는 경고가 트리거되면 테스트가 통과됩니다. 그렇지 않으면 테스트가 실패합니다. expectWarning()
Q9 : phpunit의 경고를 처리하는 방법?
위 내용은 PHP 마스터 | PHPUNIT를 사용한 오류 조건 테스트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!