Prof. Me. Marcos Echevarria
JUnit é um framework, open-source, que auxilia a criação e execução de testes unitários em classes Java. Engenharia de Software 2
JUnit facilita a criação de testes automatizados, com apresentação dos resultados; Com ele, pode ser verificado se cada método de uma classe funciona da forma esperada, exibindo possíveis erros ou falhas; Engenharia de Software 3
Um dos seus pontos fortes é que ele possui integração com várias IDEs de desenvolvimento Java; Além disso, ele facilita muito o trabalho do desenvolvedor na execução de baterias de testes; Engenharia de Software 4
1. Criação rápida de testes (maior qualidade); 2. Não é necessário criar um padrão para testes; 3. Amplamente utilizado, possuindo um grande número de exemplos; 4. Execução dos testes sem interromper o processo de desenvolvimento; 5. JUnit checa os resultados dos testes e fornece uma resposta imediata; 6. Permite que o programador perca menos tempo depurando seu código; 7. JUnit é livre. Engenharia de Software 5
--------------------------------------------------- Engenharia de Software 6
Crie um projeto no NetBeans chamado Game; Engenharia de Software 7
Crie um projeto no NetBeans chamado Game; Crie uma classe chamada FizzBuzz; Engenharia de Software 8
Clique com o botão direito em cima da classe que queremos testar; Vá em: ferramentas -> criar/atualizar testes Engenharia de Software 9
Configurando opções do Junit; Engenharia de Software 10
@BeforeClass (setupclass()) Códigos que precisam ser executados antes da criação de um objeto da classe; @AfterClass (teardownclass()) Códigos que precisam ser executados após todos os testes serem executados; @Before (setup()) Códigos que precisam ser executados antes da execução de cada teste; @After (teardown()) Códigos que precisam ser executados após a execução de cada teste; Engenharia de Software 11
@Test public void testsomemethod() { } // TODO review the generated test code and remove the default call to fail. fail("the test case is a prototype."); Engenharia de Software 12
@Test public void testnumeroqualquer() throws Exception { int numero = 7; FizzBuzz instance = new FizzBuzz(); String expresult = 7"; assertequals(expresult, instance.fizzbuzz(numero)); } Engenharia de Software 13
( 0 ) retorna Exception ( 3 ) : ( fizz ) ( 5 ) : ( buzz ) ( 7 ) : ( 7 ) ( 15 ) : ( fizz buzz ) Engenharia de Software 14
--------------------------------------------------- Engenharia de Software 15
@Test(expected=Exception.class) public void testvalormenorzero() throws Exception { FizzBuzz instance = new FizzBuzz(); instance.fizzbuzz(0); } Engenharia de Software 16
--------------------------------------------------- Engenharia de Software 17
Escreva testes: Não escreva logs de depuração (Sytem.out.println()); Nunca coloque múltiplos assertions no mesmo método: @Test public void testsomething() { assertequals(10, Calc.soma(7,3)); assertequals(50, Calc.multiplica(5,10)); assertequals(30, Calc.subtrai(50,20)); } Engenharia de Software 18
--------------------------------------------------- Engenharia de Software 19
Para cada classe da nossa aplicação teremos uma classe de testes; Podemos trabalhar a classe de teste como sendo uma classe de verdade; Use atributos, utilize o construtor, utilize os helpers (métodos padrão) e etc. Engenharia de Software 20
Para cada classe da nossa aplicação teremos uma classe de testes; Podemos trabalhar a classe de teste como sendo uma classe de verdade; Use atributos, utilize o construtor, utilize os helpers (métodos padrão) e etc. Engenharia de Software 21
--------------------------------------------------- Engenharia de Software 22
Todos nós trabalhadores e recebemos um salário, correto? Porém, o governo desconta alguns impostos de nosso salário bruto; Um deles é o famoso INSS (Instituto Nacional do Seguro Social); Ok, mas como saber quanto de INSS será descontado de nosso salário? Engenharia de Software 23
Tabela: Salário Desconto Até 1.556,94 8% De 1.556,95 até 2.594,92 9% De 2.594,93 até 5.189,82 11% Engenharia de Software 24
Tabela: Salário Desconto Até 1.556,94 8% De 1.556,95 até 2.594,92 9% De 2.594,93 até 5.189,82 11% Alguém sabe responder por que acima de R$ 5.189,82 não é cobrado INSS? Engenharia de Software 25
Precisamos desenvolver um método que realize o cálculo do INSS; Para isso, precisamos definir todos os testes que precisam ser feitos para que o método funcione; Os testes devem ser elaborados ANTES de desenvolvê-lo (TDD); Engenharia de Software 26
Utilize as duas técnicas de testes caixa preta para criar os testes para o cálculo do INSS; Após, utilize o JUnit para criar os testes unitários; Engenharia de Software 27
Crie o método que calcule o INSS a ser pago por um empregado de forma que o método passe em todos os testes criados; Engenharia de Software 28
Engenharia de Software 29
--------------------------------------------------- Engenharia de Software 30