Escolar Documentos
Profissional Documentos
Cultura Documentos
2022
2 Detalhamento do JUnit
Atualmente, com apoio de outras APIs e Framework, pode ser usado para outros níveis
de testes, como teste de integração e testes de sistema.
artifactId = junit01
version = 1.0-SNAPSHOT
Media = 7.0
Maior nota = 8.0
Menor nota = 6.0
Contudo, um teste nesse estilo exige que o Testador conheça os resultados corretos e
verifique todos os resultados de todas as classes testadas no sistema. Imagine 200 classes
sendo testadas?
O teste é criado com a compação dos valores esperados versus valores obtidos.
Contudo, ainda precisa analisar o log/saída dos testes de forma individualizada para verificar
se algum dele não retornou o valor esperado.
1 package i f m t . cba ;
2
3 p u b l i c c l a s s TesteNotas3 {
4 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] args ) {
5
6 NotaAluno3 notas = new NotaAluno3 ( ) ;
7
8 notas . addNota ( 8 ) ;
9 notas . addNota ( 7 ) ;
10 notas . addNota ( 6 ) ;
11
12 notas . processarNotas ( ) ;
13
14 System . o u t . p r i n t l n ( " Media e s t a c o r r e t a ? " + ( 7 . 0 f == notas . getMediaNotas ( ) ) ) ;
15 System . o u t . p r i n t l n ( " Maior nota e s t a c o r r e t a ? " + ( 8 . 0 f == notas . getMaiorNota ( ) ) ) ;
16 System . o u t . p r i n t l n ( " Menor nota e s t a c o r r e t a ? " + ( 6 . 0 f == notas . getMenorNota ( ) ) ) ;
17 }
18 }
O teste passa!
1 package i f m t . cba ;
2
3
4 i m p o r t s t a t i c org . j u n i t . A s s e r t . a s s e r t E q u a l s ;
5
6 i m p o r t org . j u n i t . Test ;
7
8 p u b l i c c l a s s NotaAluno5Test {
9 @Test
10 p u b l i c v o i d quandoNaoAdicionaNotas ( ) {
11 NotaAluno5 nota = new NotaAluno5 ( ) ;
12 a s s e r t E q u a l s ( 0 . 0 f , nota . getMediaNotas ( ) , 0 . 0 0 1 ) ;
13 a s s e r t E q u a l s ( F l o a t . MAX_VALUE, nota . getMaiorNota ( ) , 0 . 0 0 1 ) ;
14 a s s e r t E q u a l s ( F l o a t . MIN_VALUE , nota . getMenorNota ( ) , 0 . 0 0 1 ) ;
15 }
16
17 @Test
18 p u b l i c v o i d processarSemNotas ( ) {
19 NotaAluno5 nota = new NotaAluno5 ( ) ;
20 nota . processarNotas ( ) ;
@After - Um método anotado com essa anotação irá ser executado uma vez depois de cada
método de teste. É util para liberar recursos alocados antes dos testes.
1 package i f m t . cba ;
2
3 i m p o r t s t a t i c org . j u n i t . A s s e r t . a s s e r t E q u a l s ;
4
5 i m p o r t org . j u n i t . A f t e r ;
6 i m p o r t org . j u n i t . Before ;
7 i m p o r t org . j u n i t . Test ;
8
9 p u b l i c c l a s s Exe mpl oBef ore Aft erT est {
10
11 p r i v a t e i n t cont ;
12
13 @Before
14 p u b l i c v o i d beforeCont ( ) {
15 t h i s . cont = 1;
16 System . o u t . p r i n t l n ( " Before " + t h i s . c o n t ) ;
17 }
18
19 @After
20 public void afterCont ( ) {
21 System . o u t . p r i n t l n ( " A f t e r " + t h i s . c o n t ) ;
22 }
@AfterClass - Um método anotado com essa anotação irá ser executado uma vez depois
que todos os testes de uma classe forem executados
1 package i f m t . cba ;
2
3 i m p o r t s t a t i c org . j u n i t . A s s e r t . a s s e r t E q u a l s ;
4
5 import org . junit . After ;
6 import org . junit . AfterClass ;
7 import org . junit . Before ;
8 import org . junit . BeforeClass ;
9 import org . junit . Test ;
10
11 p u b l i c c l a s s Exemp loBef oreC lassA fter Class Test {
12
13 p r i v a t e s t a t i c i n t cont ;
14
15 @BeforeClass
16 p u b l i c s t a t i c v o i d beforeClassCont ( ) {
17 cont = 1;
18 System . o u t . p r i n t l n ( " BeforeClass " + c o n t ) ;
19 }
20
21 @Before
22 p u b l i c v o i d beforeCont ( ) {