모의 개체는 실제 객체를 대체하고 실제 객체의 실행중인 동작을 시뮬레이션하기 위해 단위 테스트에 사용되는 대체물입니다. 객체 시뮬레이션은 객체의 종속성이 아직 구현되지 않았거나 시뮬레이션하기 어려운 요소에 의존 할 때 유용합니다.
객체의 하나 이상의 종속성의 실제 구현은 아직 구현되지 않았습니다. 귀하의 작업이 데이터베이스에서 일부 데이터를 처리하는 것이라고 가정합니다. 객체 또는 데이터 저장소에 대한 일부 형태의 데이터 액세스를 호출 할 수 있지만 데이터베이스가 아직 설정되지 않은 경우 어떻게해야합니까? 데이터를 사용할 수있는 데이터가 없거나 (너무 많은 시간이 발생했는지) 또는 데이터베이스가 아직 작성되지 않은 코드가 있으면 어떻게됩니까? 데이터 액세스 개체 시뮬레이션 사전 정의 된 값을 반환하여 실제 데이터 액세스 개체를 시뮬레이션합니다. 이로 인해 데이터베이스 설정, 데이터 찾기 또는 데이터베이스를 쿼리하는 코드를 작성하는 부담이 절약됩니다.
<code class="language-php"><?php class StatusServiceTest extends PHPUnit_Framework_TestCase { private $statusService; private $fbID = 1; public function setUp() { $this->statusService = new StatusService(); } public function testGetAnalytics() { $analytics = $this->statusService->getAnaltyics(1, strtotime("2012-01-01"), strtotime("2012-01-02")); $this->assertEquals(array( "2012-01-01" => array( "comments" => 5, "likes" => 3, ), "2012-01-02" => array( "comments" => 5, "likes" => 3, ), "2012-01-03" => array( "comments" => 5, "likes" => 3, ), "2012-01-04" => array( "comments" => 5, "likes" => 3, ), "2012-01-05" => array( "comments" => 5, "likes" => 3, ) ), $analytics); } }</code>
한 단계 더 나아가십시오 : 시뮬레이션 프레임 워크
<code class="language-php"><?php class StatuService { private $facebook; public function getAnalytics($id, $from, $to) { $post = $this->facebook->get($id); } }</code>를 사용하십시오
위 내용은 PHP 마스터 | 모의 객체 테스트 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!