Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
apply plugin: 'eclipse'
apply plugin: 'groovy'
repositories {
mavenCentral()
}
dependencies {
groovy "org.codehaus.groovy:groovy-all:2.0.5"
testCompile 'org.apache.ivy:ivy:2.2.0-rc1'
testCompile ('org.spockframework:spock-core:0.7-groovy-2.0') {
exclude module : 'groovy-all'
}
groovy 'org.codehaus.groovy:groovy-all:2.1.+'
}
@Grab('org.spockframework:spock-core:0.7-groovy-2.0')
@GrabExclude('org.codehaus.groovy:groovy-all')
import spock.lang.*
class HelloSpock extends Specification {
@Unroll
def "length of Spock's and his friends' names"() {
expect:
name.size() == length
where:
name | length
"Spock" | 5
"Kirk" | 4
"Scotty" | 6
}
}
import spock.lang.*
class HelloSpock extends Specification {
@Unroll
def "length of Spock's and his friends' names"() {
expect:
name.size() == length
where:
name | length
"Spock" | 5
"Kirk" | 4
"Scotty" | 6
}
}

Spcokの使い方

その1

  • scriptとして使う
    @Grab('org.spockframework:spock-core:0.7-groovy-2.0')に加えて、
    @GrabExclude('org.codehaus.groovy:groovy-all')を付与することで、
    実行するgroovyのバージョンのコンフリクトを避ける必要がある。

その2

  • プロジェクトのクラスとして使う
    src/test/groovyの元にspock.lang.Specificationを継承したクラスを作成する。
    この場合spockの依存性に含まれるgroovy-allと
    groovyプロジェクトとしてのgroovyでコンフリクトが発生するので spockからgroovy-allの依存性を取り除く。
    なお、groovy使わないとしても、groovyの依存性を指定する必要があるので、 groovy 'org.codehaus.groovy:groovy-all:2.1.+'などは外さないこと。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.