斯波克入门
最后修改时间:2023 年 9 月 7 日用于代码示例的插件:
Java版本14.0.1
摇篮版本 7.1.1
斯波克2.0版本
Groovy 版本 3.0.8
Spock是 Java 和 Groovy 代码的测试框架,可用于自动化测试。IntelliJ IDEA 支持完整的 Spock 集成以及其他 Spock 功能,您可以通过第三方插件启用这些功能,例如Spock 框架增强功能、Spock ADB等。
创建一个项目
要了解 Spock 框架的工作原理,请创建一个常规 Gradle 项目。
为 Spock 创建一个项目
启动 IntelliJ IDEA。
如果欢迎屏幕打开,请单击“新建项目”。
否则,请转到文件 | 新 | 项目。
从建议列表中,添加并配置以下选项:
名称:添加您正在创建的项目的名称。例如,spock-tutorial。
Location : 添加项目位置的路径
Git 存储库:如果您想创建项目并将其上传到 Git,则可以选择此选项。
语言:为您的项目选择一种语言。由于 Spock 用于测试 Java 和 Groovy,因此您可以保留默认的 Java 选项。您以后随时可以将 Groovy 语言添加到您的项目中。
构建系统:选择您要在项目中使用的构建工具。例如,摇篮。
JDK:配置项目SDK。要开发基于Java的应用程序,您需要JDK(Java开发工具包)。
如果 IntelliJ IDEA 中已定义必要的 JDK,请从检测到的 JDK 列表中选择它。
如果您的计算机上没有必要的 JDK,请选择“下载 JDK”。在下一个对话框中,指定 JDK 供应商、版本,并根据需要更改安装路径。
Gradle DSL:为您的项目选择合适的 DSL。由于在 Spock 中您通常使用 Java 或 Groovy,因此您可以保留建议的 Gradle 选项。
如果您需要配置任何高级设置,可以在“高级设置”部分中进行。
选择完必要的选项后,单击“创建”。
IntelliJ IDEA 创建一个 Gradle 项目,下载必要的依赖项,并设置适当的项目结构。
设置依赖关系
创建基本的 Gradle 项目后,您需要将 Spock 依赖项添加到 Gradle 构建文件中,而不是添加默认的 JUnit 5 依赖项,以便为 Spock 编写测试。
添加 Spock 依赖项
build.gradle
在编辑器中打开文件。在build.gradle中,按并选择“添加 Maven 工件依赖项”。AltInsert
在打开的对话框中,搜索最新版本的Spock-core库。
在搜索结果列表中选择所需的项目,然后单击“添加”。
依赖项已添加到
build.gradle
文件中。添加 Groovy 依赖项的方式与添加 Spock 依赖项的方式相同,因为 Spock 测试是用 Groovy 编写的。使用3.0.8版本。
确保两个依赖项均声明为
testImplementation
并删除其他 JUnit 依赖项,因为您不需要它们。您应该在文件中看到以下代码
build.gradle
:dependencies { testImplementation 'org.codehaus.groovy:groovy-all:3.0.8' testImplementation 'org.spockframework:spock-core:2.0-groovy-3.0' }
将Groovy 插件添加到文件中
build.gradle
:plugins { id 'java' id 'groovy' }
加载您对
build.gradle
文件所做的所有更改。单击编辑器中的“加载 Gradle 更改”图标或按。CtrlShift0OIntelliJ IDEA 下载所有新的依赖项,删除旧的依赖项,并正确配置项目。
写一个简单的断言
在开始编写测试之前,请确保您已groovy
在项目中创建了一个文件夹,因为您已经创建了一个使用 Java 和 Groovy 混合语言的项目。这样您就可以将 Groovy 代码保存在该groovy
文件夹中,并将 Java 代码保存在其java
文件夹中。
添加 Groovy 文件夹
在“项目”工具窗口中,右键单击该
test
文件夹并选择“新建”|“ 目录。在打开的窗口中,IntelliJ IDEA
groovy
在列表中显示该选项,因为 Gradle 中使用了 Groovy 插件。选择
groovy
并按。EnterIntelliJ IDEA 将
groovy
目录添加到模块中test
,您可以开始编写测试。
为 Spock 编写测试
您可以从编写一个非常简单的测试开始,这样您就可以了解 Spock 测试的样子。
在“项目”工具窗口中,右键单击该
groovy
文件夹并选择“新建”|“ Groovy 类。在打开的窗口中,通过在类名之前键入完整的包名称来创建包和目录结构。Spock 测试经常被调用
Specification
,因此您可以调用该测试ExampleSpecification
。添加 Groovy 类后,在编辑器中打开它。
确保此类扩展了 Spock 的Specification类。
在类中,按并选择测试方法以生成 Spock 规范的测试方法。AltInsert
当您不太熟悉 Spock 或 Groovy 代码的编写时,这尤其有用,因为 IntelliJ IDEA 将生成您需要的基本结构。
检查以下代码:
class ExampleSpecification extends Specification { def "should be a simple assertion"() { } }
正如你所看到的,方法是用
def
关键字定义的,Spock的方法名称可以是字符串。当您创建测试时这很有帮助。文本格式使您可以灵活地描述您期望的确切行为。Spock 测试不使用注释或特定的测试方法名称格式来定义哪些方法是测试。相反,他们使用标签。对于此类简单的测试,您可以使用
expect
并定义您期望看到的最简单的行为。检查以下示例:
def "should be a simple assertion"() { expect: 1 == 1 }
正如您所看到的,Spock 也不使用
Assertions
orAssert
关键字,至少通常不使用。相反,您可以使用简单的检查,例如双等于。该should be a simple assertion
方法指定了一个简单的预期行为 – 数字 1 应等于 1。这不是一个实际的测试用例,但它显示了 Spock 测试的基础知识。首先看到测试失败总是有帮助的,以确保它确实有效并测试了正确的东西。当测试失败时,Spock 会显示一条有用的错误消息,其中准确显示失败的原因以及失败的原因。
要查看测试失败,请使用以下代码并运行测试:
def "should be a simple assertion"() { expect: 1 == 0 }
在“运行”工具窗口中检查结果和错误消息。
有关编写 Spock 测试的更多信息以及使用 Groovy 代码的技巧,请查看Spock 博客文章。
运行 Spock 测试
您可以使用编辑器装订线或主菜单运行创建的测试。
运行 Spock 测试
在编辑器中,双击装订线。
或者,您可以按。ShiftF10
在“运行”工具窗口中检查结果。
如您所见,测试通过了。
你可以更改代码,这样测试就会失败。
默认情况下,如果是 Gradle 项目,IntelliJ IDEA 使用 Gradle 来运行测试。这意味着 IDE 使用与持续集成或构建环境相同的流程来运行测试。
然而,对于项目中如此简单的代码,Gradle 构建不会执行任何额外的操作,例如生成代码或资源。在这种情况下,使用 IntelliJ IDEA 测试运行程序会更快。
更改测试运行程序
按打开 IDE 设置,然后选择“构建”、“执行”、“部署”| 构建工具| 摇篮。CtrlAlt0S
从右侧的选项中,在Run Test using下拉列表中选择IntelliJ IDEA 。
单击“确定”保存更改。
现在,当您运行测试时,IntelliJ IDEA 将使用其本机测试运行程序。
感谢您的反馈意见!