Für das diesjährige Training für Neulinge haben wir den gesamten Java-Code geändert + einen Test geschrieben und Änderungen vorgenommen, damit der Test dies garantiert. Zu dieser Zeit habe ich auch Parameter verwendet, und als ich es mit Spock gemacht habe, bin ich darin festgefahren, also ist es ein Memo. (Junit5 hat es einfacher gemacht, aber es ist immer noch ein Ärger, deshalb benutze ich oft Spock)
Java8 Groovy 2.5 spock-core 1.2-groovy-2.5 Gradle4.10
Ich habe einen Test erstellt, um zu überprüfen, was angezeigt wird, indem Java System.out mit Spock in Mock konvertiert wurde. Zu dieser Zeit wurde ich von einem Phänomen getroffen, dass beim Start ein Fehler auftrat, wenn ich ihn reibungslos schrieb und verschob.
Checken Sie in Hello World ein, um das Phänomen zu reproduzieren. Der Code des Hauptkörpers und der Testcode lauten wie folgt.
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")
}
}
Es ist in Ordnung, wenn Sie cglib-nodep und objenesis als Abhängigkeit hinzufügen (der Fehler sagt dies auch aus). Fügen Sie es hinzu und verschieben Sie es, und Sie sind fertig. Die endgültige Arbeitsweise von .build.gradle lautet wie folgt.
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