Je voulais tester une classe en utilisant un processeur d'annotation utilisant junit, j'ai donc utilisé Aptina Unit au début, mais en raison de circonstances adultes, j'ai dû utiliser des tests de compilation, j'ai donc oublié de l'utiliser. Il est écrit ici pour qu'il n'existe pas.
test de compilation github https://github.com/google/compile-testing
(´-`) .. oO (Je flirte quand je vois l'anglais.)
Cliquez ici pour d'autres pages référencées
http://blog.64p.org/entry/2015/03/26/055347
http://hisaichi5518.hatenablog.jp/entry/2017/09/21/213423
http://blog.duck8823.com/entry/2016/05/07/095947
(´-`) .. oO (japonais sûr)
Dans pom.xml, écrivez:
<dependency>
<groupId>com.google.testing.compile</groupId>
<artifactId>compile-testing</artifactId>
<version>0.12</version>
<scope>test</scope>
</dependency>
(´-`) .. oO (Je veux m'arrêter ici.)
Il s'agit d'un exemple de code de test écrit pour vérifier la sortie source par le processeur.
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.*;
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import javax.tools.JavaFileObject;
import org.junit.Test;
import com.google.common.io.Resources;
import com.google.testing.compile.Compilation;
import com.google.testing.compile.JavaFileObjects;
import static com.google.testing.compile.Compiler.javac;
import static com.google.common.truth.Truth.assert_;
import static com.google.testing.compile.JavaSourceSubjectFactory.javaSource;
public class MyProcessorTest {
@Test
public void test_Vérifiez la sortie du processeur(){
MyProcessor processor = new MyProcessor();
// assert
assert_().about(javaSource())
.that(JavaFileObjects.forResource(Resources.getResource("HelloWorld.java")))
.processedWith(processor)
.compilesWithoutError()
.and()
.generatesSources(JavaFileObjects.forSourceString("foo.bar.baz.Blah", "package foo.bar.baz;\n"
+ "\n"
+ "import java.lang.String;\n"
+ "import javax.annotation.Generated;\n"
+ "\n"
+ "@Generated({\"me.geso.sample.hello.MyProcessor\"})\n"
+ "public class Blah {\n"
+ " public String hello() {\n"
+ " return \"hello\";\n"
+ " }\n"
+ "}"));
}
}
Vous pouvez voir que foo.bar.baz.Blah correspond aux paramètres suivants avec generateSources ()
.
Testez lorsque vous souhaitez rechercher des erreurs
@Test
public void test_process_Erreur() throws Exception {
File stub = new File(System.getProperty("user.dir") + "/src/test/java/jp/co/processor/MyProErrStub.java");
assert_().about(JavaSourceSubjectFactory.javaSource())
.that(JavaFileObjects.forResource(stub.toURI().toURL()))
.processedWith(new MyProcessor())
.failsToCompile();
}
failToCompile ()
.Recommended Posts