Pour la formation de cette année pour les nouveaux arrivants, nous avons modifié tout le code Java + écrit un test et apporté des modifications afin que le test le garantisse. À ce moment-là, j'utilisais aussi des paramètres, et quand je l'ai fait avec Spock, je suis resté coincé dedans, donc c'est un mémo. (Junit5 a rendu les choses plus faciles, mais c'est toujours un problème, donc j'utilise souvent spock)
Java8 Groovy 2.5 spock-core 1.2-groovy-2.5 Gradle4.10
Je créais un test pour vérifier ce qui était affiché en convertissant Java System.out en Mock avec spock. À ce moment-là, j'ai été frappé par un phénomène selon lequel une erreur se produisait au démarrage si je l'écrivais en douceur et la déplaçais.
Vérifiez dans Hello World pour reproduire le phénomène. Le code du corps principal et le code de test sont les suivants.
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
class HelloWorldTest extends Specification {
def mainTest() {
setup:
PrintStream printStream = Mock()
System.out = printStream
when:
HelloWorld.main(null)
then:
1 * printStream.println("Hello World")
}
}
Ce n'est pas grave si vous ajoutez cglib-nodep et objenesis comme dépendance (l'erreur le dit également). Alors, ajoutez-le et déplacez-le, et vous avez terminé. Le .build.gradle de travail final est le suivant.
plugins {
id 'java'
id 'groovy'
}
group 'com.tasogarei'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile "org.codehaus.groovy:groovy:2.5.6"
testCompile "org.spockframework:spock-core:1.2-groovy-2.5"
testCompile "cglib:cglib-nodep:3.2.10"
testCompile "org.objenesis:objenesis:3.0.1"
}
Recommended Posts