簡體   English   中英

Junits應該涵蓋哪些類型的案例以及Cucumber下的哪些案例

[英]What type of cases should be covered under Junits and which ones under Cucumber

開發人員通常使用Junits編寫測試用例

測試人員通常使用Cucumber編寫測試用例

我很困惑,這些(Cucumber 和 Junit)有什么不同,如果最后它們都用於驗證我們代碼的邏輯!

我的假設是否正確,如果我說...

  • 簡單的方法測試由 Junits 完成

  • 艱難的場景,我們有 Cucumber

顧名思義,單元測試旨在測試小代碼單元。 單元測試是用代碼編寫的,這使得它對業務的可讀性降低,但也使它非常強大並且可能非常快。

Cucumber 是用於描述行為的工具。 每個 cuke 將exercise更大的代碼塊。

這兩種測試非常不同。 如此不同以至於大多數 Cucumber 愛好者不想使用測試這個詞( https://cucumber.io/blog/collaboration/the-worlds-most-misunderstood-collaboration-tool/

場景根本不是關於驗證代碼的邏輯,它們與代碼無關。 它們是關於描述您的應用程序的行為並支持該行為的開發。 在場景和行為實施后,它們用於確認行為“可能”仍在按預期工作。

單元測試都是關於代碼的,它們是用代碼編寫的,並且(理想情況下)直接連接到代碼。 它們絕對可以用來驗證代碼的邏輯。

還有一些其他的主要區別

運行

  • 場景很慢
  • 單元測試很快(除非它們寫得不好)

這不是一個小區別。 優化編寫的單元測試可以比優化編寫的場景快 1000 倍。

表現力和力量

  • 場景使用自然語言來表達自己。 他們使用抽象和命名來行使權力。 寫得很好的杯子對企業來說非常易讀

  • 單元測試使用代碼來表達自己並發揮作用。 他們更強大。 然而,他們更難表達自己。 利益相關者無法閱讀單元測試。 即使是編寫精美的單元測試 output 對於非編碼人員來說也很難閱讀

概括

你有兩個非常不同的東西,以不同的方式工作,使用不同的工具(自然語言與代碼)。 因此,您擁有不同的工具也就不足為奇了。

不幸的是,我們有很多人使用 Cucumber 作為測試工具來編寫類似單元的測試,並且我們有很多人使用單元測試工具來編寫測試大量代碼的慢速測試。 這兩件事都是可能的,甚至是可行的,但它們遠非最佳。

Cucumber 是一個行為驅動設計 (BDD) 框架。 您可以在其中檢查一段代碼的行為。

JUnit 是一個較低級別的“單元測試”工具,允許開發人員測試代碼的每個可能部分。

為了更清楚,您可以更喜歡Cucumber 與 Junit

所以,我將舉一個例子,解釋 Cucumber 與 Junit 的域之間的區別

考慮 Web 應用程序的示例..

  • Junits 將測試 Controller、Service & DAO 層所涉及方法的代碼邏輯

  • Cucumber 此應用程序的測試,將承擔具有各種 REST 請求的案例,由此應用程序的 API 公開。 [根據具體情況,它將有 Get、Post、Put、Delete 的測試請求,每個請求都有多個數據]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM