2012-12-15 41 views
3

我對整個測試場景都很陌生。我一直在閱讀關於BDD測試(在我的案例中,我正在編寫PHP應用程序,所以我正在研究Behat作爲一個BDD框架),我覺得它非常有趣。 我在網上搜索了一些關於api包裝的bdd測試的信息,但是我發現了很多不同的結果。我應該爲休息api包裝器編寫測試嗎?

我打算用REST api編寫一個服務的應用程序。但我也需要編寫PHP api包裝器。所以我的問題是,我是否應該爲封裝器編寫測試以及我要寫什麼類型的測試?

+2

你應該爲所有*你的*代碼編寫測試。第三方代碼應由其自己的維護人員進行測試,如果不是,則應該謹慎在項目中使用它。 – rdlowrey

+0

第三方代碼?不確定我在追隨。我正在爲api包裝器和使用包裝器的應用程序編寫代碼。我沒有寫的唯一東西顯然是REST服務。我的第二個問題是,我應該爲api包裝器寫什麼樣的測試? – moleculezz

+0

如果你會發布一些代碼(或者至少是一些僞代碼),看看你的API封裝類是什麼樣的,我實際上可以寫一個完整的答案來談論如何去測試它。 – rdlowrey

回答

0

BDD框架可以工作,但它可能會被證明是脆弱的考慮硒之間可能發生的可能性,你的應用程序使用API​​,以及你的API裏面發生了什麼。

有這樣 http://docs.guzzlephp.org/en/latest/

如果你喜歡其他語言,你可以用騾子ESB做對Web服務API測試的一個偉大的PHP的方式。我發現它非常擅長針對服務或任何HTTP運行自定義任何東西。如果您喜歡groovy或java Mule ESB非常適合直接訪問端點以將響應分離併發出有效請求和無效請求。它具有針對各種可能性的尖銳點擊界面。如果你的API返回XML,你有很多方法直接解析它。它也適用於JSON。即使您爲數據響應創建了自己的格式,您也可以非常輕鬆地進行深入研究。 Guzzle給你很多同樣的東西,但是以一種PHP捲曲友好的方式,但沒有尖銳的點擊事物。

如果您的REST API所使用的語言和框架有一個體面的單元測試包,那麼也要這樣做,尤其是在它有意義的地方。我知道你使用的是PHP,我討厭在php中進行單元測試,但有時你不能用其他方法來驗證某些方法在你想保護某些方法時是否正確。

我已經看到成功的api測試套件也是使用像Jasmine或qUnit這樣的javascript測試框架創建的。

這一切都取決於你對自己感到滿意的方式以及你的api正在發生的事情的性質以及你認爲重要的api功能。

+0

你在這裏談論很多關於API的知識。但我沒有製作API。我只是將API用於我的應用程序,而且我已經編寫了該API用於我的應用程序的封裝器。 – moleculezz

相關問題