2014-04-24 53 views
0

在我的phpunit.xml中定義的PHPUnit中運行完整的測試套件時,所有單元測試都運行並通過。作爲一個羣組運行時,PHPunit測試失敗

如果我然後運行一組特定的測試,我會發現一個致命錯誤,因爲我試圖模擬的類無法找到。

我有一個Bootstrap.php文件,設置了一個自動加載器,並從我可以看到Bootstrap用於這兩種情況。

以前有沒有經歷過這個,或者有什麼建議?

+0

也許顯示你的測試失敗,bootstrap.php和你正在使用的命令行? –

回答

0

我偶爾會發生這種錯誤。如果不瞭解更多關於自動加載器或您的設置,您可以通過在課程中使用disableAutoload來解決您的問題。

使用MockBuilder接口:

$mock = $this->getMockBuilder('SomeClass')->disableAutoload()->getMock(); 

或者

$mock = $this->getMock('SomeClass', array(), null, null, true, true, true) 
               disables Autoload ----^ 

http://phpunit.de/manual/current/en/test-doubles.html#test-doubles.stubs.examples.StubTest.php

  • 默認情況下,給定類的所有方法都替換爲測試 兩倍只是除非配置了返回值0123,否則返回NULL例如,使用will($ this-> returnValue())的。

  • 當提供第二個(可選)參數時,只有名稱在陣列中的方法 被替換爲可配置測試 double。其他方法的行爲不會改變。提供 NULL作爲參數表示不會更換任何方法。

  • 第三個參數(可選)可以包含傳遞給原始類的構造函數(默認情況下不會被 替換爲虛擬實現)的參數數組 。

  • 第四個(可選)參數可用於爲生成的測試雙重類指定類名稱 。

  • 第五個(可選)參數可用於禁用對原始類的構造函數的調用。

  • 第六個(可選)參數可用於禁用對原始類的克隆構造函數的調用。

  • 第七個(可選)參數可用於在生成測試雙類期間禁用__autoload() 。

相關問題