As regras são usadas para aprimorar o comportamento de cada método de teste de maneira genérica. A regra Junit intercepta o método de teste e nos permite fazer algo antes que um método de teste inicie a execução e depois que um método de teste foi executado.
Por exemplo, usando a regra @Timeout , podemos definir o tempo limite para todos os testes.
public class TestApp {
@Rule
public Timeout globalTimeout = new Timeout(20, TimeUnit.MILLISECONDS);
......
......
}
A regra @TemporaryFolder é usada para criar pastas e arquivos temporários. Toda vez que o método de teste é executado, uma pasta temporária é criada e é excluída após a execução do 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");
}
}
Você pode ver exemplos de algumas regras internas fornecidas por junit neste link .