2011-08-28 95 views
-1

想知道如何開始在siverstripe中爲這個函數編寫單元測試嗎?銀河系的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

編寫測試以根據輸入值檢查函數的輸出。使用邊緣情況作爲輸入值。如何編寫單元測試的一般描述可以在PHPUnit文檔中找到[第4章爲PHPUnit編寫測試](http://www.phpunit.de/manual/current/en/writing-tests-for- phpunit.html) - 這有點你在找什麼? – hakre

回答

2

文檔與SilverStripe寫作測試的若干頁面

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

要開始想打一個固定的文件和一幫那些EventProduct產品(文檔中有這樣一個例子)。

此外,您還可以通過查看內置測試找到很多很好的測試示例。我已經選擇了BlogHolder測試,因爲它與你正在尋找的東西非常相似(用過濾器測試客戶的getter)

https://github.com/silverstripe/silverstripe-blog/blob/master/tests/BlogHolderTest.php(並且夾具文件是在同一文件夾中的BlogTree.yml)