PHPUnit에 대한 도우미 특성을 제공합니다.
dd()
및 d()
TestDouble
$this->getDouble()
$this->verifyInvoked()
$this->verifyInvokedOnce()
$this->verifyInvokedMultipleTimes()
$this->verifyNeverInvoked()
ReflectionHelper
$this->getPrivateProperty()
$this->setPrivateProperty()
$this->getPrivateMethodInvoker()
DebugHelper
달리다:
$ composer require --dev kenjis/phpunit-helper
TestDouble
이 특성은 모의 개체를 만들고 호출을 확인하는 도우미 메서드를 제공합니다.
KenjisPhpUnitHelperTestDouble
특성을 테스트 클래스로 가져옵니다.
<?php
declare (strict_types= 1 );
namespace Foo Bar Test Unit ;
use Kenjis PhpUnitHelper TestDouble ;
use PHPUnit Framework ;
final class BazTest extends Framework TestCase
{
use TestDouble;
}
$this->getDouble()
매개변수 | 유형 | 설명 |
---|---|---|
$classname | 끈 | 수업 이름 |
$params | 정렬 | [메소드_이름 => 반환_값] |
[[메서드_이름 => [반환_값1, 반환_값2 [, ...]]] | ||
$constructor_params | 거짓/배열 | false: 생성자 비활성화 / 배열: 생성자 매개변수 |
(객체) PHPUnit 모의 객체를 returns
.
PHPUnit 모의 객체를 가져옵니다.
$ email = $ this -> getMockBuilder (CI_Email::class)
-> disableOriginalConstructor ()
-> onlyMethods ([ ' send ' ])
-> getMock ();
$ email -> method ( ' send ' )
-> willReturn ( true );
위와 같이 아래와 같이 코드를 작성할 수 있습니다.
$ email = $ this -> getDouble (CI_Email::class, [ ' send ' => true ]);
Closure를 모의 메서드의 반환 값으로 설정할 수 있습니다.
$ ret = function () {
throw new RuntimeException ( ' Cannot send email! ' );
};
$ mock = $ this -> getDouble (CI_Email::class, [ ' send ' => $ ret ]);
$this->returnSelf()
사용하여 모의 메서드 자체를 모의 메서드의 반환 값으로 설정할 수도 있습니다.
$ mock = $ this -> getDouble (CI_Email::class, [
' to ' => $ this -> returnSelf (),
' subject ' => $ this -> returnSelf (),
' send ' => true ,
]);
연속적인 호출로 모의를 만들 수 있습니다.
$ mock = $ this -> getMockBuilder (CI_Email::class)
-> disableOriginalConstructor ()
-> onlyMethods ([ ' method ' ])
-> getMock ();
$ mock -> expects ( $ this -> any ())-> method ( ' method ' )
-> will ( $ this -> onConsecutiveCalls ( ' GET ' , ' POST ' , ' DELETE ' ));
위와 같이 아래와 같이 코드를 작성할 수 있습니다.
$ mock = $ this -> getDouble (
CI_Input::class,
[
[ ' method ' => [ ' GET ' , ' POST ' , ' DELETE ' ]],
]
);
$this->verifyInvoked()
매개변수 | 유형 | 설명 |
---|---|---|
$mock | 물체 | PHPUnit 모의 객체 |
$method | 끈 | 메소드 이름 |
$params | 정렬 | 인수 |
메서드가 한 번 이상 호출되었는지 확인합니다.
$ loader -> expects ( $ this -> atLeastOnce ())
-> method ( ' view ' )
-> with (
' shopConfirm ' , $ this -> anything (), true
);
위와 같이 아래와 같이 코드를 작성할 수 있습니다.
$ this -> verifyInvoked (
$ loader ,
' view ' ,
[
' shopConfirm ' , $ this -> anything (), true
]
);
$this->verifyInvokedOnce()
매개변수 | 유형 | 설명 |
---|---|---|
$mock | 물체 | PHPUnit 모의 객체 |
$method | 끈 | 메소드 이름 |
$params | 정렬 | 인수 |
메서드가 한 번만 호출되었는지 확인합니다.
$ loader -> expects ( $ this -> once ())
-> method ( ' view ' )
-> with (
' shopConfirm ' , $ this -> anything (), true
);
위와 같이 아래와 같이 코드를 작성할 수 있습니다.
$ this -> verifyInvokedOnce (
$ loader ,
' view ' ,
[
' shopConfirm ' , $ this -> anything (), true
]
);
$this->verifyInvokedMultipleTimes()
매개변수 | 유형 | 설명 |
---|---|---|
$mock | 물체 | PHPUnit 모의 객체 |
$method | 끈 | 메소드 이름 |
$times | 정수 | 타임스 |
$params | 정렬 | 인수 |
해당 메소드가 정확히 $times 번 호출되었는지 확인합니다.
$ loader -> expects ( $ this -> exactly ( 2 ))
-> method ( ' view ' )
-> withConsecutive (
[ ' shopConfirm ' , $ this -> anything (), true ],
[ ' shopTmplCheckout ' , $ this -> anything ()]
);
위와 같이 아래와 같이 코드를 작성할 수 있습니다.
$ this -> verifyInvokedMultipleTimes (
$ loader ,
' view ' ,
2 ,
[
[ ' shopConfirm ' , $ this -> anything (), true ],
[ ' shopTmplCheckout ' , $ this -> anything ()]
]
);
$this->verifyNeverInvoked()
매개변수 | 유형 | 설명 |
---|---|---|
$mock | 물체 | PHPUnit 모의 객체 |
$method | 끈 | 메소드 이름 |
$params | 정렬 | 인수 |
메소드가 호출되지 않았는지 확인합니다.
$ loader -> expects ( $ this -> never ())
-> method ( ' view ' )
-> with (
' shopConfirm ' , $ this -> anything (), true
);
위와 같이 아래와 같이 코드를 작성할 수 있습니다.
$ this -> verifyNeverInvoked (
$ loader ,
' view ' ,
[
' shopConfirm ' , $ this -> anything (), true
]
);
ReflectionHelper
이 특성은 비공개 또는 보호 속성 및 메서드에 액세스하기 위한 도우미 메서드를 제공합니다.
그러나 일반적으로 비공개 속성이나 메서드를 테스트하는 것은 권장되지 않으므로 이 특성의 메서드를 사용하기 전에 다시 한 번 생각하세요.
KenjisPhpUnitHelperReflectionHelper
특성을 테스트 클래스로 가져옵니다.
<?php
declare (strict_types= 1 );
namespace Foo Bar Test Unit ;
use Kenjis PhpUnitHelper ReflectionHelper ;
use PHPUnit Framework ;
final class BazTest extends Framework TestCase
{
use ReflectionHelper;
}
$this->getPrivateProperty()
매개변수 | 유형 | 설명 |
---|---|---|
$obj | 객체/문자열 | 객체/클래스 이름 |
$property | 끈 | 속성 이름 |
(혼합) 속성 값을 returns
.
개인 또는 보호 속성 값을 가져옵니다.
$ obj = new SomeClass ();
$ private_propery = $ this -> getPrivateProperty (
$ obj ,
' privatePropery '
);
$this->setPrivateProperty()
매개변수 | 유형 | 설명 |
---|---|---|
$obj | 객체/문자열 | 객체/클래스 이름 |
$property | 끈 | 속성 이름 |
$value | 혼합된 | 값 |
개인 또는 보호 속성 값을 설정합니다.
$ obj = new SomeClass ();
$ this -> setPrivateProperty (
$ obj ,
' privatePropery ' ,
' new value '
);
$this->getPrivateMethodInvoker()
매개변수 | 유형 | 설명 |
---|---|---|
$obj | 객체/문자열 | 객체/클래스 이름 |
$method | 끈 | 메소드 이름 |
(클로저) 메소드 호출자를 returns
.
비공개 또는 보호된 메서드 호출자를 가져옵니다.
$ obj = new SomeClass ();
$ method = $ this -> getPrivateMethodInvoker (
$ obj , ' privateMethod '
);
$ this -> assertEquals (
' return value of the privateMethod() method ' , $ method ()
);
DebugHelper
이 특성은 변수를 덤프하는 도우미 함수인 dd()
및 d()
제공합니다.
KenjisPhpUnitHelperDebugHelper
특성을 테스트 클래스로 가져옵니다.
<?php
declare (strict_types= 1 );
namespace Foo Bar Test Unit ;
use Kenjis PhpUnitHelper DebugHelper ;
use PHPUnit Framework ;
final class BazTest extends Framework TestCase
{
use DebugHelper;
}
이 패키지는 MIT 라이선스를 사용하여 라이선스가 부여됩니다.
LICENSE
를 살펴보시기 바랍니다.