Spock 是一個用於Java 和Groovy 應用程式的BDD 風格的開發人員測試和規範框架。使用Groovy Web 控制台。
最新的 2.x 發行版本是2.4-M4 (2.4-M4-groovy-2.5、2.4-M4-groovy-3.0、2.4-M4-groovy-4.0),於 2024 年 3 月 21 日發布。
目前的開發版本是2.4-SNAPSHOT (2.4-groovy-2.5-SNAPSHOT、2.4-groovy-3.0-SNAPSHOT、2.4-groovy-4.0-SNAPSHOT)。
注意: Spock 2.x 是基於 JUnit 5 平台,需要 Java 8+/groovy-2.5+(建議使用 Groovy 3.0 或 4.0,特別是在使用 Java 12+ 的專案中)。
可以從 Maven Central 取得版本。開發快照可從 Sonatype OSS 取得。
對於中間穩定版本,我們建議使用 Jitpack(請到此處以取得說明):
新增 https://jitpack.io 作為儲存庫
使用org.spockframework.spock
作為groupId
和普通的artifact-id
儲存庫 {// ...maven { url 'https://jitpack.io' } } 依賴項{ testImplementation 'org.spockframework.spock:spock-core:spock-2.4-M4'testImplementation 'org.spockframework.spock:spock-spring:spock-2.4-M4'}
對於中間版本,您也可以使用提交雜湊作為版本,例如編譯com.github.spockframework.spock:spock-core:d91bf785a1
spock-core — 核心框架。這是唯一的強制性模組。
spock-specs — spock-core 的規範,使用 Spock 實作。使用 Spock 不需要。
spock-spring — 與 Spring TestContext 框架整合。
spock-tapestry — 與 Tapestry 5 IoC 容器整合。
spock-guice — 與 Guice 2/3 整合。
spock-unitils — 與 Unitils 整合。
Spock 需要安裝 JDK 8 和 JDK 17+。
透過工具鏈編譯Spock需要JDK 8(自動下載被停用)。
gradle 建置本身至少需要 JDK 17 才能運作。
工具鏈必須透過JDK<version>=<PATH>
環境變數來了解 JDK 位置,例如JDK8=/path/to/jdk8
。
Spock 支援 Java 版本 8+。
Groovy 版本 2.5、3.0 和 4.0 支援 Spock。
這些測試正在使用 Groovy 和 Java 的特定版本(變體)來測試 Spock。預設 Groovy 版本是 2.5。
Groovy 3.0 和 4.0 變體應該傳遞所有受支援的 JDK 版本,Groovy 2.5 不適用於 Java 17+:
./gradlew 構建
要建立 Spock 的特定變體,請使用變體名稱作為參數
./gradlew 建置-Dvariant=4.0
若要針對特定 Java 版本進行測試,請使用 java 版本名稱作為參數,必須透過環境變數JDK<version>=<PATH>
設定 Java 版本的路徑。當然,這可以與上面的變體選擇相結合。
./gradlew 建置-DjavaVersion=17
(Windows: gradlew build
)。所有建置依賴項,包括建置工具本身,都會自動下載(除非已經存在)。
歡迎貢獻!請參閱貢獻頁面以取得詳細說明。
如果您有任何意見或問題,請直接造訪使用者論壇。感謝所有回饋!
所有已發佈的 jar(從 Spock 1.2 開始)都將包含 Automatic-Module-Name 清單屬性。這允許在 Java 9 模組路徑中使用 Spock。
spock-core — org.spockframework.core
spock-spring — org.spockframework.spring
spock-tapestry — org.spockframework.tapestry
spock-guice — org.spockframework.guice
spock-unitils — org.spockframework.unitils
因此模組作者可以為 spock 模組使用眾所周知的模組名稱,例如:
開啟模組 foo.bar { 需要 org.spockframework.core; 需要 org.spockframework.spring; }
Spock 標誌由 Ayşe Altınsoy (@AltinsoyAyse) 創建,在 spock-logo 儲存庫中進行管理。
Spock 首頁 — https://spockframework.org
Groovy Web 控制台 — https://groovyconsole.dev/
GitHub 組織 — https://github.com/spockframework
參考文件 — https://docs.spockframework.org
使用者論壇 — https://github.com/spockframework/spock/discussions
聊天 — https://gitter.im/spockframework/spock
堆疊溢位 - https://stackoverflow.com/questions/tagged/spock
問題追蹤器 — https://github.com/spockframework/spock/issues
Spock 範例專案 — https://github.com/spockframework/spock-example
推特 — https://twitter.com/SpockFramework
乳齒象 — https://fosstodon.org/@spockframework
?長壽並繁榮!
Spock 框架團隊