2011-11-27 29 views
0

在Groovy的幾篇文章中,我已經看到Groovy中使用「when」和「then」關鍵字。其中之一是here。我搜索了Groovy Doc,但我找不到它。那麼這些關鍵字的實際用途是什麼?類似於if/then?在Groovy中何時使用?

+1

你在說easyb嗎? –

回答

7

他們不是groovy關鍵字;它們實際上是由一些流行的測試框架提供的結構。它看起來像easybspock都使用whenthen

在這兩種情況下,測試框架都會創建一個測試規範DSL,這看起來是人類可讀的。

1

從技術上來說,Spock中的then,when和其他一些構造是很好的舊標籤(aka goto),這些開發者現在很少使用這些標籤。 Spock使用它們允許開發人員在邏輯上和視覺上區分測試的不同方面 - 假設,約束,語句或數據。 Spock編譯時AST轉換比使用標籤理解測試的結構併發揮其魔力。

+0

有點讓人困惑,相同的標籤可以在同一個代碼塊中多次使用(至少......對我來說) – Armand

+0

即使在Java中,也可以連續多次使用同一個標籤。沒有歧義的風險。 –