2017-04-26 84 views
1

在接受記者採訪時,項目經理問我以下問題:有沒有辦法測試PHPUnit以外的Symfony應用程序?

我在你的簡歷看,你正在使用PHPUnit的4測試?爲什麼不用 您使用Symfony的內置測試?

我回答:

我所知道的是,Symfony的應用測試是通過PHPUnit的,這是從 2.3和2.7的文檔建議做。我不知道Symfony3 是否帶有測試組件!

我的回答正確嗎?感謝您的解釋。

+7

聽起來像PM一樣不知道他們在說什麼。根據我的經驗,這通常是我工作的一部分。 Symfony確實有一些零碎的東西可以建立在例如WebTestCase用於集成/功能測試,但它仍然通過PHPUnit iirc使用。 –

+1

@JonStirling,我同意第二句話:D。感謝您的解釋,是的,我們擴展了WebTestCase,但最後要執行的命令是'phpunit ....' –

回答

3

是的,你是對的。 Symfony有一個WebTestCase(擴展了KernelTestCase,你可以發現它擴展了PhpUnit)進行功能測試。此外,Symfony提供了一個PhpUnitBridge,它爲編寫Symfony應用程序的PHPUnit測試提供了有用的東西,例如使測試失敗,使用不推薦使用的組件。兩者都依賴於PHPUnit並在「vanilla」phpunit之上提供額外的功能。

有替代測試工具,如phpspec寫單元測試和Behat更高水平測試(功能和驗收測試),但兩者都沒有使用內部的Symfony,所以並不真的似乎要說的是什麼問關於。

+1

謝謝先生,它刪除了所有的混淆 –

+1

很高興我可以幫助和良好的面試/獲得一個新工作 – dbrumann

+0

謝謝先生,我讚賞:) –

0

給你的答案的補充信息: 根據我的經驗,WebTestCase也作爲靜態方法在所有測試中引導內核。由於這個原因,單元測試不太好,因爲這個測試應該很快。他們設計了功能測試控制器和操作,但不需要啓動HTTP服務器。

然後爲:

  • 單元測試,內置的是不是好的選擇
  • 功能測試,這是初衷,但我認爲,貝哈特是更好的解決方案
  • 系統測試 - 不太好了。

總結,這就是爲什麼我不使用這個工具。

相關問題