程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> Facebook 新開發的PHP Mock工具:FBMock

Facebook 新開發的PHP Mock工具:FBMock

編輯:關於PHP編程

為了讓測試運行得更快更可靠,寫測試更方便,人們通常使用Mock,而不是直接使用真正的外部依賴 最近,Facebook寫了一個新的PHP Mock工具,用它寫的Mock看上去非常干淨整潔。 當使用PHP其它的Mock框架時,寫的代碼需要更多的語句,而且令測試過於依賴具體的實現細節。 比如,當我們用PHPUnit做Mock,只是簡單地返回一些值時,代碼可能象下面這樣 [php]   <pre name="code" class="php">$user = $this->getMock('User')    ->expects($this->any())    ->method('getID')    ->will($this->returnValue(1234);   </pre><br>   <pre></pre>   而使用FBMock時,代碼如下:   [php]  $user = mock('User')->mockReturn('getID', 1234);     其實,FBMock並不是真正意義上的Mock框架,因為它沒有上面代碼那樣,使用期望值檢查。所以,只能算是一個有spy功能的樁。其實,Mock框架中的這種期望值檢查最好少用,因為它有點兒過於限定化了。上面用FBMock的例子中,其實並不在意getID()被調用了多少次。   當然,有的時候檢查哪個method被調用過也是很重要的,這時候可以簡單地依賴於PHPUnit中的assertion。   [php]   $logger = mock('Logger');      // Run code that uses $logger      // Make sure 'data' was logged   $this->assertCalledOnce($logger, 'log', array('data'));     目前,FBMock支持 Zend PHP 5.4+ 和 HipHop VM。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved