모든 사람 이이 작업을 수행하는 것은 아니지만 응용 프로그램을 테스트하는 것은 개발자가되는 가장 기본적인 부분 중 하나입니다. 단위 테스트는 가장 일반적인 테스트입니다. 단위 테스트를 사용하면 클래스가 예상대로 정확히 실행되는지 확인할 수 있습니다. 때로는 응용 프로그램에서 타사 서비스를 사용하고 있으며 단위 테스트를 위해 모든 것을 설정하기가 어렵습니다. 시뮬레이션이 시작될 때입니다.
우리는 또한 phpunit.xml 라는 phpunit 구성 파일을 만듭니다
<code>{ "name": "sitepoint/weather", "license": "MIT", "type": "project", "require": { "php": ">=5.3.3" }, "autoload": { "psr-0": { "": "src/" } }, "require-dev": { "phpunit/phpunit": "4.1.*", "mockery/mockery": "0.9.*" } }</code>
단위 테스트를 만듭니다
<code class="language-xml"><phpunit> <testsuite name="SitePoint Weather"> <directory>./tests</directory> </testsuite> <listeners> <listener class="\Mockery\Adapter\Phpunit\TestListener" file="vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/TestListener.php"></listener> </listeners> </phpunit></code>이 방법에서 수행해야 할 첫 번째 단계는 새로운 온도 서비스 객체를 만드는 것입니다. 우리가 그렇게하는 것처럼, 우리의 생성자는 weatherserviceinterface를 구현하는 객체를 요청합니다. 우리는 아직 그런 물건이 없기 때문에 (우리는 그것을 원하지 않습니다), 우리는 조롱을 사용하여 우리를 위해 모의 개체를 만들 것입니다. 완료 후 메소드가 어떻게 보이는지 봅시다.
testGetTempFahrenheit()
,
를 사용할 수 있습니다. 이 경우 한 번만 호출 될 것으로 예상됩니다. 호출되지 않거나 과도한 통화가 호출되면 단위 테스트가 실패합니다.
<code class="language-php">namespace SitePoint\Weather; interface WeatherServiceInterface { /** * 返回摄氏温度 * * @return float */ public function getTempCelsius(); }</code>메소드에서 반환 할 값을 정의합니다. 이 경우 25로 돌아옵니다. 조롱에는 또한 ,
및 shouldReceive()와 같은 반환 메소드가 있습니다. 그것이 당신이 기대하는 것이라면, 조롱은 예외를 던질 수 있습니다.
루트 디렉토리에서 once()
를 실행하면 phpunit에서 녹색 표시등이 생겨 모든 것이 완벽하다는 것을 나타냅니다. twice()
times(X)
다음으로
물론, 조롱은 더 많은 일을 할 수 있습니다. 전체 안내서 및 문서를 보려면 Github 페이지를 확인하는 것이 좋습니다.
조롱 및 테스트 종속성에 대한 FAQ (FAQ)
andReturn()
<code>{
"name": "sitepoint/weather",
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.3.3"
},
"autoload": {
"psr-0": { "": "src/" }
},
"require-dev": {
"phpunit/phpunit": "4.1.*",
"mockery/mockery": "0.9.*"
}
}</code>
테스트 방법을 살펴 보겠습니다. <code class="language-xml"><phpunit>
<testsuite name="SitePoint Weather">
<directory>./tests</directory>
</testsuite>
<listeners>
<listener class="\Mockery\Adapter\Phpunit\TestListener" file="vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/TestListener.php"></listener>
</listeners>
</phpunit></code>
를 사용 하여이 방법을 7 번이라고 기대합니다. 메소드가 정확히 7 번 호출되지 않으면 테스트가 실패합니다. phpUnit.xml 구성 파일에서 리스너를 정의하지 않으면 이에 대한 알림을받지 못합니다. once()
메소드를 정의합니다. times(7)
with()
with
andReturn()
위 내용은 조롱으로 테스트 종속성을 조롱하십시오의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!