Alguns anos atrás comecei a estudar TDD e como desenvolvia principalmente em Java na época comecei a aprender um pouco mais sobre o JUnit, o principal framework de testes de unidade do Java e um dos primeiros de todas as linguagens. Para me ajudar eu criei um pequeno manual prático sobre ele:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
class SimpleSnipetJUnitTest {
	private Calculator calculator;
	/**
	  * Este método é invocado antes de cada teste, a annotation
          * facilita isso
	  */
	@Before
	public void setUp() {
		//Tudo aqui será executado antes, servindo por exemplo para inicializar.
		calculator = new Calculator();
	}
        
        /**
          * Este método é invocado após os testes, servindo, como exemplo, para liberar recursos.
          */
        @After
        public void finalize() {

        }
	
	/**
          * Teste comum, o método assertEquals realiza a operação de teste de igualdade.
          */
	@Test
	public void testeSimples() {
		int result;
		result = calculator.sum(1, 2);
		assertEquals(3, result);
	}

	/**
	  * Teste para números de ponto flutuante.
	  * Destaque para o terceiro parâmetro, o delta, que define
          * qual a diferença decimal entre cada parâmetro.
	  */
	@Test
	public void testeDePontoFlutuante() {
		float result;
		result = calculator.divide(5, 2);
		//O terceiro parâmetro é a diferença máxima entre os floats
		assertEquals(2.5, result, 0.1)
	}

	/**
	  * Teste para exceções
	  * Se não disparar a exceção, o método falha.
	  */
	@Test (expected= CalculatorException.class)
	public void testeDeExcecao() {
		int result;
		result = calculator.divide(5, 0);
	}
}