Spock 是一个用于 Java 和 Groovy 应用程序的 BDD 风格的开发人员测试和规范框架。要了解有关 Spock 的更多信息,请访问 https://spockframework.org。要在浏览器中运行示例规范,请使用 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 框架团队