我有一个由Gradle2.4构建的Java库,它将被一些Java6应用程序、一些Java7应用程序、一些Java8应用程序和一些Groovy2.x应用程序使用。因此,为了尽可能地向后兼容,我编写的lib具有sourceCompatibility
和targetCompatibility
1.6:
build.gradle
============
apply plugin: 'java'
apply plugin: 'groovy'
sourceCompatibility = '1.6'
targetCompatibility = '1.6'
repositories {
mavenCentral()
jcenter()
}
dependencies {
compile (
'org.slf4j:slf4j-api:1.7.12'
)
testCompile (
'org.codehaus.groovy:groovy-all:2.4.6'
,'org.spockframework:spock-core:1.0-groovy-2.4'
)
}
但是,我没有理由不能用Groovy/Spock编写单元测试。只要Groovy不是main/compile/runtime类路径的一部分,那么我就可以自由地用任何JVM语言编写测试!我选择Groovy/Spock!
问题是,我以前从没做过这样的事。我认为我需要将Groovy-All和Spock添加到testcompile
类路径中,但是我不确定是否需要应用Groovy插件以及其他配置。
再次:
关于上面我需要做什么具体的改变,有什么想法吗?
如果您希望Gradle编译任何Groovy,作为主要源代码或只是测试源代码,您将希望应用Groovy
Gradle插件。也就是说,只要您没有构建一个胖jar(即一个jar库,它本身包含依赖的库,这样它就可以作为一个独立的应用程序运行),那么您就不应该在运行时类路径上与Groovy有任何联系。您希望将Spock/Groovy添加到testCompile依赖项中,这是正确的,并且只要将它们的范围限定为testCompile,即使创建fat JAR也不应该将它们包含在主编译类路径中、最终构建的工件中,或者在运行时要求它们在类路径上。
与此相关的是,在Gradle中,您还可以修改任意和所有依赖项的配置。请查看Gradle依赖关系管理文档,了解更多相关信息。
我开发了一套关于实体的保存、搜索和修改的Spock测试,一切都运行得很顺利。具体地说,我有一个Spring Boot应用程序冒烟测试,以确保配置正确加载 由于自然密钥是channel和service,所以我尝试定义了一个复合密钥 以及主键类(节选) 构建jar并运行测试,然后 启动Spring Boot服务器
我想用groovy和Spock测试这个类:
我正在尝试使用Spock运行geb测试。我已经在groovy脚本中编写了所有内容,该脚本位于中,如下所示
我正在尝试为Spring批处理应用程序编写测试,特别是在以下读取器从实现简单行映射器的数据库中获取记录时的交互: 以下是Batch配置中的步骤定义: 除了我尝试使用以下方法进行测试外,其他方法都可以正常工作: 我无法正确地模拟阅读器,我尝试了各种方法,比如更新阅读器的属性,比如,但似乎没有任何效果。 更新读者结果的正确方法是什么? 或者在单元测试期间,是否需要通过另一种方式来正确操作数据库中的记录
我是Spock框架的新手,在使用抽象java测试类时遇到了问题。 我想要的是一个groovy测试类,它用一些常用的方法扩展一些其他java抽象类,这些方法反过来扩展规范类。 当我运行GroovyTest类时,我得到以下错误: Org.SpockFramework.Runtime.InvalidSpecException:规范“org.my.package.AbstractTest”未正确编译(Sp
我有一个调用管道步骤方法(带有凭据)的共享库。我正在尝试测试withCredentials方法在调用myMethodToTest时是否被sh脚本正确调用,但在withCredentials闭包中迭代时遇到错误: 测试方法 嘲笑 测试用例 错误(it变量在闭包中变为null)