Arquivos da categoria:Testes
JUnit 4 e arquivos
Testar código que manipula arquivos com o JUnit em geral é muito chato. Os testes ficam cheios de código que usa a API de io do Java e que deixa de expressar o comportamento do código.
A classe TemporaryFolder do JUnit 4.7 tem uma API para criar arquivos e diretórios dentro de um diretório temporário. Essa classe usa o mecanismo de @Rule do JUnit 4 apagar arquivos depois de cada teste (depois até do @After do teste atual).
public class FileUploaderTest {
@Rule
public TemporaryFolder folder = new TemporaryFolder();
private static final String INPUT_FILENAME = "input.ext";
private static final String OUTPUT_FILENAME = "output.ext";
private FileUploader fileUploader;
private File inputFile;
private File outputDir;
@Before
public void setUp(){
outputDir = folder.newFolder("outputDir");
fileUploader = new FileUploader(outputDir);
inputFile = new File(INPUT_FILENAME);
}
@Test
public void shouldWriteTheUploadedFile() throws IOException{
inputFile = folder.newFile(INPUT_FILENAME);
fileUploader.upload(inputFile, OUTPUT_FILENAME);
File outputFile = new File(outputDir, OUTPUT_FILENAME);
assertTrue(outputFile.exists());
}
@Test(expected=FileUploadException.class)
public void inputFileShouldNotBeADirectory(){
inputFile = folder.newFolder(INPUT_FILENAME);
fileUploader.upload(inputFile, OUTPUT_FILENAME);
}
}
A Arte Perdida de Testar o Software
Jorge Diz, da Teamware, escreveu no post A Arte Perdida de Testar Software sobre como o projeto do System/360 da IBM, do início da década de 60, tinha 40k m2 de máquinas exclusivamente alocadas para testes, executando centenas de cenários de teste sem parar.
Estamos redescobrindo a importância de testar software. E porque durante todo esse tempo não demos importância para testes de software?
Minha explicação: falta de profissionalismo.