Las reglas se utilizan para mejorar el comportamiento de cada método de prueba de forma genérica. La regla Junit intercepta el método de prueba y nos permite hacer algo antes de que un método de prueba comience la ejecución y después de que se haya ejecutado un método de prueba.
Por ejemplo, usando la regla @Timeout podemos establecer el tiempo de espera para todas las pruebas.
public class TestApp {
@Rule
public Timeout globalTimeout = new Timeout(20, TimeUnit.MILLISECONDS);
......
......
}
La regla @TemporaryFolder se usa para crear carpetas temporales, archivos. Cada vez que se ejecuta el método de prueba, se crea una carpeta temporal y se elimina después de la ejecución del método.
public class TempFolderTest {
@Rule
public TemporaryFolder tempFolder= new TemporaryFolder();
@Test
public void testTempFolder() throws IOException {
File folder = tempFolder.newFolder("demos");
File file = tempFolder.newFile("Hello.txt");
assertEquals(folder.getName(), "demos");
assertEquals(file.getName(), "Hello.txt");
}
}
Puede ver ejemplos de algunas reglas integradas proporcionadas por junit en este enlace .