從應用程序設計的角度來看,理想情況下,在使用cucumber
時,我們應該在哪裏提供RestAPI
的詳細信息?即在特徵文件或步驟定義文件中?在使用黃瓜時,我們應該在哪裏提供RestAPI細節?
1
A
回答
1
黃瓜是一個工具,所有關於您正在使用的業務的人羣之間的溝通。
如果你只是在一個項目上工作,那麼用商業語言描述特徵的需求就會減少(儘管這對使用BDD思維模式起草創意很有用)。
我的建議,保留沒有代碼,CSS或任何其他事情,可能會拋出一個非專業人員的功能文件。將它們移到步驟定義文件中,並根據非專業人員可以理解的內容描述您正在做的事情。
1
RestAPI
並不是您正在解決的業務問題的真正組成部分。 Rest
不是您的核心功能。這只是使用您正在構建的真實功能的一種技術方式。
因此,我不會在使用Gherkin的功能文件中描述RestAPI。我將這些實現細節隱藏在膠水代碼中,連接在Gherkin中編寫的例子和被測試的系統。
1
您應該將其存儲在step_definitions
文件中。將所有標記爲特徵文件中的小黃瓜步驟的編碼保留在您創建文件的step_definitons
文件夾中。 它總是更好地保留沒有代碼的功能文件,它們主要是爲了更好地理解測試過程和業務場景以及從BDD角度查看時的最佳實踐。
如果您的API值經常發生變化,您也可以在黃瓜黃瓜步驟中提及這些值,並將其作爲參數傳遞給step_definitions文件。因此,值中的任何更改都可以在功能文件本身中進行處理,而不是每次都要轉到代碼中。
在旁註中,您用什麼gem
來測試REST API? Airborne?
相關問題
- 1. 我在哪裏可以詳細瞭解黃瓜?
- 2. 我應該在哪裏放置配置細節? [Python]
- 3. 黃瓜:共享步驟,在哪裏放置它們?
- 4. 我應該在哪裏使用CSS供應商前綴
- 5. 我應該在哪裏使用OnActivityResult?
- 6. 我應該在哪裏使用angular.bind?
- 7. 我應該在哪裏使用protobuf
- 8. 我應該在哪裏使用XSP.endAjaxLoading()?
- 9. 我們應該在哪裏使用Template Method - 模式?
- 10. 黃瓜失敗的情況下不提供詳細信息(Ubuntu)
- 11. 在黃瓜報告中提供請求和響應體
- 12. 我在哪裏可以找到如何最好地使用黃瓜標籤?
- 13. 黃瓜/ Webrat:提供參數GET請求
- 14. PHP - 我應該在哪裏調用ini_set?
- 15. 我應該在哪裏調用TDSSessionManager.Instance.AddSessionEvent?
- 16. 在java中,當我們使用函數'FileReader(String fileName)'時,我們應該在哪裏保存文件fileName?
- 17. 我應該向Proxy.newProxyInstance(...)提供哪個ClassLoader?
- 18. 我應該在哪裏放置在phabricator
- 19. 我應該在哪裏放置在FBConnect
- 20. 我應該在哪裏把我的UpdatePanel
- 21. 我們應該在哪裏使用commit(session),在try還是finally中?
- 22. 我們在哪裏使用JAAS
- 23. 如果庫使用它們,應該在哪裏聲明庫#defines?
- 24. Rails 3 - Helper,他們應該在哪裏使用?
- 25. 我應該在哪裏使用模板,我應該在哪裏編程生成視圖對象?
- 26. 應該在哪裏使用System.Collections.Concurrent集合?
- 27. 應該在哪裏使用WatiN DomContainer類?
- 28. 應該在哪裏使用Rx?
- 29. BizTalk - 部署細節存儲在哪裏
- 30. 破碎的RSpec和黃瓜測試,不知道在哪裏
感謝您的回覆。 應該在哪裏提供我們測試箱所需的殘存數據?在步驟定義或功能文件? 如果RestAPI正在改變,我們是否應該維護一個屬性文件,以便代碼不會非常頻繁地更改? – GaurZilla
我會在步驟定義中保留技術原因所需的任何數據。實際上具有商業意義的數據應該放入場景中。我不會通過添加屬性文件來增加更多的複雜性。我會接受對步驟定義的更改。與實現REST API的代碼相比,它們會變得很小。 –