[JAVA] Notes sur l'utilisation de chaque règle de JUnit

Quelle est la règle

TestRule ou une instance d'une classe qui hérite de TestRule En ajoutant l'annotation @Rule et en la définissant dans le champ de la classe de test Il est possible d'ajouter diverses fonctions au test.

http://junit.org/junit4/javadoc/4.12/org/junit/rules/TestRule.html

Constitution

$ tree
.
├── build.gradle
└── src
    └── test
        └── java
            └── example
                ├── TestTemporaryFolder.java
                └── TestTestName.java
$ cat build.gradle
apply plugin: "java"

repositories {
  mavenCentral()
}

dependencies {
  testCompile "junit:junit:4.+"
}

test {
  testLogging.showStandardStreams = true
}

TestName

http://junit.org/junit4/javadoc/4.12/org/junit/rules/TestName.html

TestTestName.java


package example;

import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestName;
import org.junit.runner.Description;

import static org.junit.Assert.assertEquals;

public class TestTestName
{
    @Rule
    public TestName testName = new TestName()
    {
        @Override
        public void starting(Description d)
        {
            System.out.println(
                String.format("%s starting ...", d.getMethodName()));
            super.starting(d);
        }
    };

    @Test
    public void testMethodA()
    {
        System.out.println(
            String.format("%s running ...", testName.getMethodName()));
        assertEquals("testMethodA", testName.getMethodName());
    }

    @Test
    public void testMethodB()
    {
        System.out.println(
            String.format("%s running ...", testName.getMethodName()));
        assertEquals("testMethodB", testName.getMethodName());
    }
}
$ gradle -Dtest.single=TestTestName test

> Task :test

example.TestTestName > testMethodA STANDARD_OUT
    testMethodA starting ...
    testMethodA running ...

example.TestTestName > testMethodB STANDARD_OUT
    testMethodB starting ...
    testMethodB running ...


BUILD SUCCESSFUL in 1s
2 actionable tasks: 1 executed, 1 up-to-date

TemporaryFolder

http://junit.org/junit4/javadoc/4.12/org/junit/rules/TemporaryFolder.html

TestTemporaryFolder.java


package example;

import java.io.File;
import java.io.IOException;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;

import static org.junit.Assert.assertTrue;

public class TestTemporaryFolder
{
    File tempFile = null;

    @Rule
    public TemporaryFolder tempFolder = new TemporaryFolder()
    {
        @Override
        protected void before() throws Throwable
        {
            System.out.println("TemporaryFolder.before running ...");
            super.before();
        }

        @Override
        protected void after()
        {
            System.out.println("TemporaryFolder.after running ...");
            super.delete();
        }
    };

    @Before
    public void before() throws IOException
    {
        System.out.println("TestTemporaryFolder.before running ...");
        tempFile = tempFolder.newFile();
    }

    @After
    public void after()
    {
        System.out.println("TestTemporaryFolder.after running ...");
    }

    @Test
    public void testMethodA()
    {
        System.out.println("testMethodA running ...");
        System.out.println(String.format("tempFile name: %s", tempFile.getName()));
        assertTrue(tempFile.exists());
    }

    @Test
    public void testMethodB()
    {
        System.out.println("testMethodA running ...");
        System.out.println(String.format("tempFile name: %s", tempFile.getName()));
        assertTrue(tempFile.exists());
    }
}
$ gradle -Dtest.single=TestTemporaryFolder test

> Task :test

example.TestTemporaryFolder > testMethodA STANDARD_OUT
    TemporaryFolder.before running ...
    TestTemporaryFolder.before running ...
    testMethodA running ...
    tempFile name: junit2803814005363359855.tmp
    TestTemporaryFolder.after running ...
    TemporaryFolder.after running ...

example.TestTemporaryFolder > testMethodB STANDARD_OUT
    TemporaryFolder.before running ...
    TestTemporaryFolder.before running ...
    testMethodA running ...
    tempFile name: junit23544542917867853.tmp
    TestTemporaryFolder.after running ...
    TemporaryFolder.after running ...


BUILD SUCCESSFUL in 2s
2 actionable tasks: 1 executed, 1 up-to-date

Recommended Posts

Notes sur l'utilisation de chaque règle de JUnit
Comment utiliser JUnit (débutant)
[Création] Comment utiliser JUnit
Remarques sur l'utilisation des expressions régulières en Java
Comment utiliser Ruby on Rails
Comment utiliser les bio-formats sur Ubuntu 20.04
Comment utiliser Apache Derby sur Eclipse
[Ruby on Rails] Comment utiliser redirect_to
Comment utiliser Map
Comment utiliser rbenv
Comment utiliser with_option
Comment utiliser fields_for
Comment utiliser java.util.logging
Comment utiliser collection_select
Comment utiliser Twitter4J
Comment utiliser active_hash! !!
Comment utiliser MapStruct
Comment utiliser TreeSet
[Comment utiliser l'étiquette]
Comment utiliser l'identité
Comment utiliser le hachage
Comment utiliser Dozer.mapper
Comment utiliser Gradle
Remarques sur la création d'extensions Burp Suite
Comment utiliser org.immutables
Comment utiliser java.util.stream.Collector
Comment utiliser VisualVM
Notes sur la façon de rédiger des commentaires en anglais
Comment utiliser Map
Comment utiliser la bibliothèque non standard Java sur IntelliJ IDEA
[Java] Comment utiliser Map
Comment utiliser Queue avec priorité
[Rails] Comment utiliser enum
Comment utiliser java Facultatif
Comment utiliser le retour Ruby
Comment déployer avec heroku
[Rails] Comment utiliser enum
Comment utiliser la classe Java
Comment utiliser Big Decimal
[Java] Comment utiliser removeAll ()
Comment utiliser String [] args
Comment utiliser la jonction de rails
Comment utiliser Java Map
Ruby: Comment utiliser les cookies
Comment utiliser Dependant :: Destroy
Comment écrire Junit 5 organisé
Comment utiliser Eclipse Debug_Shell
Comment utiliser Apache POI
[Rails] Comment utiliser la validation
Comment utiliser les variables Java
[Rails] Comment utiliser authenticate_user!