2015-02-09 64 views
1

我在這裏創建了一個非常小的symfony2包:https://github.com/BranchBit/AirGramBundleUnittesting remote api? (在symfony2中)

只是一個簡單的服務,這個調用遠程URL。

現在,單元測試明智的,我應該甚至測試這個?真正的一切都可能出錯,是遠程主機不可用,但那不是我的代碼的問題。

如果您的捆maintian,你會建議,我想100%的代碼覆蓋率,代碼的不過50%,只是調用遠程URL ..

建議?

Thx提前。

+1

我建議你使用'HTTP客戶端'而不是直接調用'file_get_content',這樣你就可以通過容器注入。在你的單元測試中,你可以注入http客戶端的模擬值,它可以定義你想要的行爲(如錯誤響應或500等)。希望這個幫助。讓我知道你是否需要一些例子。 – Matteo 2015-02-09 16:47:46

回答

0

這個測試在我看來是不必要的。如果你嘗試測試它,那麼你可以使用WebTestCase。您在Bundle中的服務應該接受Symfony\Component\BrowserKit\Client的客戶實施。您可以選擇Goutte\Client用於生產點火,用於測試或用於cURL或Symfony\Component\HttpKernel\Client。然後你必須動態添加一個路由或請求監聽器。

無所謂,但測試比實施更復雜,那麼您如何確定,您的測試是否可以?

+0

唯一有意義的是將模擬傳遞給您的服務,檢查對您的服務的調用是否以正確的方式調用Symfony \ Component \ BrowserKit \ Client。那麼你應該得到更好的代碼覆蓋率。 – Aitch 2015-02-09 17:00:50