日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 线程什么时候出栈_在Java中给出的时间

發布時間:2023/12/3 java 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 线程什么时候出栈_在Java中给出的时间 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java 線程什么時候出棧

tl; dr,您可以使用標簽來闡明給定的測試時間樣式。

什么時候給出?

給定的時間,然后是指定系統行為的一種常用樣式,其中您的測試分為三個部分。

  • 給定的部分列出了測試的先決條件,即在您開始之前假設世界所處的任何狀態。
  • When子句執行要測試的動作。
  • 然后,Then語句檢查后置條件是否成立。 通常以聲明值或檢查與模擬的交互的形式。

并非總是這種情況,您需要在每個測試的代碼中包含三個部分。 例如,您的給定部分可能被通用的setUp方法覆蓋。 我認為遵循模式并拆分不同的部分是一個好主意,因為它使您可以從樹木中清晰地看到木材。

在Junit中使用標簽

在某些項目中,我一直在嘗試進一步發展,而不只是將給定/何時/然后拆分并使用Java標簽,以便對測試的不同部分進行布局以使事情變得更加清晰* 。 以下代碼段顯示了如何使用Junit來實現。

Cafe cafe = new Cafe();@Testpublic void cafeShouldNeverServeCoffeeItDoesntHave() {Given:cafe.setCoffeesRemaining(1);When:cafe.serveCoffee();Then:assertFalse(cafe.canServeCoffee());}

這是一個非常簡單的示例,僅用于演示布局。 我們的測試檢查了Cafe提供了從未提供過的咖啡。 標簽清楚地劃分了代碼的三個部分。 看到這樣使用標簽有點不尋常–它們在Java中最常用,是一種一次性突破嵌套循環的方式。 當然,沒有真正的理由不這樣使用它們,這只是一個樣式問題,帶有標簽和不帶有標簽的代碼之間沒有語義差異。

將標簽與Lambda行為配合使用

我確定大多數Java開發人員都在使用Junit,但我最近發布了一個名為Lambda Behave的新庫。 它被設計為Java 8的現代測試和行為規范框架,使編寫流暢和易讀的測試變得更加容易。 在lambda-behave中,您通過列出描述性字符串而不是限制性方法名來編寫測試,并以lambda表達式描述測試的主體。 我發現以這種風格編寫的測試更容易閱讀。

您可以在lambda-behave規范中使用相同的給定/何時/然后標簽樣式,如以下代碼示例所示:

describe("a cafe", it -> {Cafe cafe = new Cafe();it.should("never serve coffee it doesn't have", expect -> {Given:cafe.setCoffeesRemaining(1);When:cafe.serveCoffee();Then:expect.that(cafe.canServeCoffee()).is(false);});});

局限性與替代方案

以這種方式使用標簽的最大麻煩在于,由于我不知道的原因,您不能在Java中的變量聲明語句之前編寫標簽。 這意味著,如果要使用新變量啟動Given:子句,則需要將變量聲明提升到塊頂部或a字段中。 我還沒有發現這是個大問題,實際上吊裝機可以進一步清理東西。

另一種可能也是更常見的方法是使用注釋來表示給定/何時/然后子句。 我認為兩者之間的選擇主要是文體而非實質。 在這兩種情況下,您都只是編寫一些說明性文字,而不是像Cucumber和JBehave一樣將功能烘焙到測試框架中。 我認為,如果您已在團隊中達成約定,并且希望使這些標簽比常規注釋更突出,則將標簽用作單個注釋的想法比較合適。

有些人在給定/何時/然后使用相似的替代模式,但是具有更多階段,例如四階段測試方法,甚至使用不同的名稱,例如Arrange,Act,Assert 。 這些樣式也可以使用基于標簽或基于注釋的約定。

結論

如果有人想在其IDE中進行外觀或玩耍,我會將示例代碼放在github上 。 沒有太多的代碼,因為它們只是非常簡單的示例,但是顯示沒有魔術可能會有所幫助!

在本博客文章中,我已經展示了如何使用標簽來闡明代碼塊的意圖,希望這是人們發現有用和有用的一種技術。 無論您是否使用標簽來實現給定時間,我都希望人們遵循某種約定編寫測試。 這確實使事情變得更加清晰。 我敢肯定有人對此事有意見,所以讓我知道您認為這是個好主意嗎?

*我/認為/我在一次LJC活動上與他交談后從Jose Llarena得到了這個主意,所以謝謝Jose!

翻譯自: https://www.javacodegeeks.com/2015/01/given-when-then-in-java.html

java 線程什么時候出棧

總結

以上是生活随笔為你收集整理的java 线程什么时候出栈_在Java中给出的时间的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。