PHPPECTEC는 행동 중심 개발 개념 (BDD)을 기반으로 한 PHP 테스트 프레임 워크입니다. 개발자가 phppectec을 사용하여 테스트를 작성하면 먼저 클래스의 동작을 설명한 다음 테스트 사례를 통해 이러한 동작이 올바르게 구현되는지 확인해야합니다. 기존 단위 테스트와 비교할 때 Phppectec은 코드의 동작에 더 많은주의를 기울이고 코드의 실행중인 논리를보다 직관적으로 반영하여 개발 효율성 및 코드 품질을 향상시킬 수 있습니다.
phppectec을 설치하기 전에 환경이 다음 조건을 충족하는지 확인하십시오.
PHP 버전은 7.0보다 높아야합니다
작곡가 설치
Composer를 통해 PHPTSPEC를 설치하는 것은 매우 쉽습니다.
<span class="fun">Composer에는 PHPTSPEC/PHPTSPEC가 필요합니다</span>
설치가 완료되면 공급 업체/bin/phptpectec을 실행하여 phppectec을 사용할 수 있습니다.
먼저 클래스 설명 파일 (사양)을 만들어야합니다.
// 파일 이름: MyStringSpec.php
use PhpSpec\ObjectBehavior;
<p>class MyStringSpec extends ObjectBehavior<br>
{<br>
function it_is_initializable()<br>
{<br>
$this->shouldHaveType(MyString::class);<br>
}<br>
}<br>
이 예에서는 ObjectBehavior 클래스를 상속하면 PHPPECT에서 제공 한 테스트 방법을 호출하여 코드 동작을 확인할 수 있습니다. 여기에서 it_is_initializable 방법은 MyString 클래스를 올바르게 인스턴스화 할 수 있는지 여부를 테스트합니다.
공급 업체/bin/phptpc run 명령을 실행 한 후 테스트가 통과하면 터미널에 다음과 같은 내용이 표시됩니다.
MyString
? is initializable
1 specs
1 example
1 assertion
이는 테스트 사례가 성공적으로 실행되었고 테스트 적용 범위가 100%에 도달했음을 나타냅니다.
클래스가 예상대로 작동하는지 확인하는 데 사용되었습니다. 예를 들어:
function it_can_add_two_numbers()
{
$this->add(2, 3)->shouldReturn(5);
}
이 메소드는 add ()가 두 숫자를 올바르게 추가하고 결과를 반환 할 수 있는지 테스트합니다.
계급의 행동이 기대치와 일치하는지 여부를 감지하는 데 사용됩니다. 예를 들어:
function it_should_return_false_for_empty_string()
{
$this->isEmpty('')->shouldReturn(false);
}
이 테스트는 isempty () 메소드가 빈 문자열이있을 때 False를 반환하도록합니다.
이 메소드가 특정 경우에 예외가 발생하는지 여부를 테스트하는 데 사용됩니다. 예를 들어:
function it_should_throw_an_exception_when_index_out_of_bound()
{
$this->shouldThrow('OutOfBoundsException')->during('get', [10]);
}
이 테스트는 get () 메소드가 범위 외부의 색인으로 전달 될 때 OutOfBoundSexception 예외가 발생하는지 여부를 확인합니다.
경기자는 테스트 결과가 기대치와 일치하는지 여부를 주장하는 데 사용됩니다. PHPSPEC에는 다양한 내장 매칭자가 있으며 다음은 일반적으로 사용되는 일부 매치 자입니다.
메소드 확인 값을 반환합니다. 예를 들어:
function it_can_add_two_numbers()
{
$this->add(2, 3)->shouldReturn(5);
}
2와 3에서 전달하려면 add () 메소드를 호출하고 5를 반환 할 것으로 예상됩니다.
반환 값이 예상 값과 동일인지 결정합니다. 예를 들어:
function it_should_return_hello_world()
{
$this->return_hello_world()->shouldEqual('Hello World');
}
return_hello_world () 메소드가 문자열 "Hello World"를 반환하는지 확인하십시오.
메소드가 지정된 예외를 던지는 지 여부를 감지하십시오. 예를 들어:
function it_should_throw_an_exception_when_index_out_of_bound()
{
$this->shouldThrow('OutOfBoundsException')->during('get', [10]);
}
get () 메소드를 호출하고 10로 전달하면 OutFboundSexception 예외가 발생할 것으로 예상됩니다.
PHPSPEC는 개발자가 고품질 테스트 사례를 쉽게 작성하는 데 도움이되는 강력한 PHP 테스트 프레임 워크입니다. 행동 중심 개발 방법을 통해 Phppect는 코드의 유지 관리 가능성을 향상시킬뿐만 아니라 테스트 중심 개발 프로세스를 최적화합니다. PHP 개발자가 코드 품질을 향상시키는 강력한 도구입니다.