2016-09-27 119 views
0

我想問一下Cucumber和JUnit之間的實際區別。我根本沒有和黃瓜一起工作;發現了一些文檔,但是我會非常感謝來自兩個人共同工作的人的反饋(對lvl概述感興趣)。黃瓜vs Junit

要打破它 - 我感興趣的(我將使用硒和不量角器):

  1. 是否有任何事情,黃瓜不能做VS Junit的。
  2. 什麼更容易使用(編碼,你可以寫測試的速度有多快)?
  3. 這兩個工作與頁面對象?

,我需要有些東西來得到完成

  1. 測試CSS樣式
  2. 測試頁面響應
  3. 上WebElements(點擊,獲取數據等)
  4. 斷言
  5. 標準操作。

除此之外的任何東西都比歡迎。非常感謝你對此的回答,謝謝!

+0

看看QAF-gherkin客戶端https://qmetry.github.io/qaf/latest/qaf-gherkin-client.html在這裏你檢查文檔https://qmetry.github.io/qaf/qaf- 2.1.9/gherkin_client.html – user861594

回答

3

JUnit和黃瓜瞄準不同的目標。它們相互補充而不是互相替代。

有沒有什麼事情,黃瓜不能做的和Junit。

你無法用JUnit做任何你無法用黃瓜做的事情。另一種方式。

不同之處在於,雖然JUnit旨在測試,但Cucumber旨在與非技術人員進行協作。非技術人員不會理解單元測試的作用。但是,他們將能夠理解和驗證用小黃瓜寫的例子。

什麼是更容易使用(編碼,你能寫多快的測試)?

當你使用黃瓜時有更多的開銷。您必須將每個步驟實施爲一種方法,而不僅僅是一種測試方法,就像您使用JUnit一樣。從使用純文本表達示例中獲得的可讀性有時候是值得的。

這兩個工作都與頁面對象?

頁面對象是您正在驗證的網頁的抽象。這是一個你寫作開發者/測試者的類。頁面對象可以被JUnit和Cucumber使用。事實上,從這個角度來看,這些工具沒有區別。

使用JUnit或黃瓜的選擇是一個粒度和觀衆的問題。

運作良好的工作流程是混合工具。定義應用程序如何使用BDD工作的示例(黃瓜,小黃瓜)。使用Cucumber實現這些場景。然後,使用JUnit來制定可能很重要但對高層商業利益相關者不重要的細節。考慮重要的角落案例,但是對於您的利益相關者來說有太多細節。

描述這種混合的圖像,請訪問:https://cucumber.io/images/home/bdd-cycle.png

我寫了博客張貼了一段時間後,我談談這個職位的合適的工具:http://www.thinkcode.se/blog/2016/07/25/the-right-tool-for-the-job

使用正確的工具可能是黃瓜。它也可以是JUnit。這一切都取決於你的觀衆。

+0

謝謝,至少對我來說,這真的結束了辯論 –

3

簡而言之,這兩個工作在完全不同的抽象層次上。

JUnit主要是一個自動化框架;使您能夠使用Java編程語言快速編寫測試用例。它提供的註釋可以輕鬆聲明:「此處的此方法是JUnit測試」。它旨在作爲框架unit tests;但許多人也使用它來驅動全面的「集成」或「功能」測試。

黃瓜另一方面工作在一個更高的抽象層次。你首先在純文本中編寫「測試描述」。通向可能的關鍵區別在於:你不需要知道Java來編寫黃瓜測試(你只需要一個java程序員來提供「粘合代碼」,它允許Cucumber將你的文本輸入變成一些可執行代碼) 。

從這個意義上說,你在某種程度上要求我們在這裏比較蘋果和蘿蔔;因爲人們會將這兩個工具集用於不同的「問題解決方案」。但是列出來了;你也可以使用JUnit來驅動「更大」的測試;所以這兩種工具的主要區別在於您正在處理的抽象的級別。

編輯:你的評論是正確的;因爲那些工具是針對不同的「設置」的,所以你不應該期望一個非技術人員能夠使用黃瓜來編寫涵蓋所有內容的良好測試。黃瓜是一種非技術參與創建測試的好方法;但最終,你正在解決技術(與Java有關的)問題;因此您在某個時候需要Java編程專業知識。 「在同一個人內」;或者至少在你的團隊的不同人員中。

+0

謝謝你的回答。在此基礎上,由於Cucumber有不同的方法(「你從純文本中編寫」測試描述「開始,導致可能的關鍵區別:你不需要知道Java來編寫黃瓜測試)當我想深入測試時,這會導致一些問題?或者僅僅依靠這一點就會遇到黃瓜無法解決的問題? –

+0

@AlexL看到我編輯的答案。 – GhostCat