'클래스'에 함수가 있는지 어떻게 확인할 수 있는지 궁금합니다. assertClassHasAttribute가 작동하지 않습니다. Function이 Attribute가 아니기 때문에 정상입니다.HowTo PHPUnit assertFunction
9
A
답변
32
phpunit을 I가 제공하는 주장의 방법을 만들거나 자세한 메시지와 함께 낮은 수준의 주장 중 하나를 사용 중 하나가 아니다 :
$this->assertTrue(
method_exists($myClass, 'myFunction'),
'Class does not have method myFunction'
);
assertTrue()
는 당신이 얻을 수있는만큼 기본이다. 테스트에 bool 값을 반환하는 내장 된 PHP 함수를 사용할 수 있기 때문에 많은 유연성을 허용합니다. 따라서 테스트가 실패하면 오류/실패 메시지는 전혀 도움이되지 않습니다. Failed asserting that <FALSE> is TRUE
과 같은 것입니다. 따라서 두 번째 매개 변수를 assertTrue()
에 전달하여 테스트가 실패한 이유를 자세히 설명해야합니다.
7
단위 및 통합 테스트는 클래스 정의가 무엇인지 다시 테스트하지 않는 동작을 테스트하기위한 것입니다.
그래서 PHPUnit은 그러한 단정을 제공하지 않습니다. phpunit을 클래스가 함수 값 뭔가를해야만 반환, 이름 X를 가지고 주장 할 수 있습니다,하지만 당신은 당신이 사용하고 싶은 것을 할 수 있습니다
/**
* Assert that a class has a method
*
* @param string $class name of the class
* @param string $method name of the searched method
* @throws ReflectionException if $class don't exist
* @throws PHPUnit_Framework_ExpectationFailedException if a method isn't found
*/
function assertMethodExist($class, $method) {
$oReflectionClass = new ReflectionClass($class);
assertThat("method exist", true, $oReflectionClass->hasMethod($method));
}
+0
굉장합니다. 이것은 내 필요에 완벽하게 들린다. 고마워 @ 모나 셰키 나 – shan
관련 문제
- 1. Some something like $ AssertFunction = Abort []; Message []
- 2. pxlib - howto 절을 사용하는 howto 쿼리?
- 3. Howto pg_restore
- 4. HowTo : BeginProcessRequest
- 5. iPhone 특별 배포판 howto?
- 6. Android PendingIntent howto
- 7. svndumpfilter2 + Windows HowTo
- 8. OpenFlow :: Howto Stream Images
- 9. AsyncSocket TLS HOWTO
- 10. HowTo : 프로덕션 서버의 Redis
- 11. HOWTO : 프로세스에 태그 지정
- 12. modalViewController는 콜백을 위임합니다 - HowTo?
- 13. Howto jquery 양식 값
- 14. Howto - Spring DynamicDestinationResolver?
- 15. api 서비스를 만드는 howto
- 16. Javascript DOM howto?
- 17. howto Zend_Dojo_Form_Element_Filtering onchange submit
- 18. Joomla component install howto
- 19. Android Facebook howto Post
- 20. Howto by col by
- 21. python unittest howto
- 22. mnesia의 howto 시작 표?
- 23. phpunit 및 yii - (PHPUnit/Autoload.php) : 스트림을 열지 못했습니다 :
- 24. PHPUnit 테스트를위한 "웹 인터페이스"?
- 25. PHPUnit on Wamp
- 26. phpunit testing xml output
- 27. PHPUnit 치명적인 오류와 include_path
- 28. PHPUnit 경로 문제
- 29. Selenium-PHPUnit, Selenium Grid
- 30. phpunit xdebug reporting
왜 당신이 검사 할 것인가? – Gordon
리팩터링을 할 때 유용합니다 ... 테스트를 통해 클래스에 포함 된 메소드가 어떤 이유로 클래스를 다른 클래스로 옮겨야 할 때 유용합니다 : 디커플링 책임 등에 대한 것입니다. – HexaGridBrain
의존성이 적절하게 조롱되거나 스텁되어 있는지 그리고 공용 API가 완전하게 다루어 졌는지를 확인할 때 절대 필요하지 않을 것입니다. – Gordon