2011-08-28 2 views
-1

siverstripe에서이 함수에 대한 쓰기 단위 테스트를 시작하는 방법을 알고 싶으십니까?silverstripe의 PHP 단위 테스트

function getAvailableScanners($date){ 
     $scanners = self::get("Scanner"); 

     $startDate = date("Y-m-d", strtotime("-".self::$daysNeededAfterLastGig." days", strtotime($date))); 
     $endDate = date("Y-m-d", strtotime("+".self::$daysNeededBeforeNextGig." days", strtotime($date))); 

     foreach($scanners as $scanner){ 
      $events = EventProduct::get("EventProduct", "\"ExpiryDate\">='$startDate' AND \"ExpiryDate\"<='$endDate'"); 
      if($events){ 
       foreach($events as $event){ 
        if($scanner->isAssignedToEvent($event)){ 
         $scanners->remove($scanner); 
        } 
       } 
      } 
     } 

     return $scanners; 
    } 
+0

무엇이 당신의 질문입니까? – hakre

+0

어떻게이 함수에 대한 PHP 단위 테스트를 작성하려면? – Nisha

+0

입력 값을 기반으로 함수의 출력을 검사하는 테스트를 작성하십시오. 입력 값에 edge-cases를 사용하십시오. 단위 테스트를 작성하는 방법에 대한 일반적인 설명은 [제 4 장 PHPUnit 용 테스트 작성] (http://www.phpunit.de/manual/current/en/writing-tests-for- phpunit.html) - 이것은 당신이 찾고있는 다소입니까? – hakre

답변

2

문서는 시작하려면

http://doc.silverstripe.org/sapphire/en/topics/testing/

그 EventProduct 제품의 무리 (문서이의 예를 가지고와 고정 파일을 만들고 싶어 SilverStripe와 쓰기 시험에 대한 몇 가지 좋은 페이지가).

또한 내장 테스트를보고 많은 좋은 테스트 예제를 찾을 수 있습니다. 나는 당신이 찾고있는 것과 비슷한 것을 수행하기 때문에 (필터로 고객의 getter를 테스트) BlogHolder 테스트를 골랐다.

https://github.com/silverstripe/silverstripe-blog/blob/master/tests/BlogHolderTest.php (그리고 조명기 파일은 같은 폴더에서 BlogTree.yml 임)