Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
[NERDGIRLZ] - Junit: melhores práticas para testes unitários nas suas aplicações Java
Search
Kamila de fatima santos oliveira
May 21, 2020
Programming
1
200
[NERDGIRLZ] - Junit: melhores práticas para testes unitários nas suas aplicações Java
Kamila de fatima santos oliveira
May 21, 2020
Tweet
Share
More Decks by Kamila de fatima santos oliveira
See All by Kamila de fatima santos oliveira
Minha aplicação virou um monstrinho e agora?
kamilahsantos
1
35
Spring + Localstack : usando aws de forma gratuita
kamilahsantos
2
130
Hacktoberfest DevsJavaGirl
kamilahsantos
0
31
[We are developers Java developer day ] - I will have to refactor ! And now ? Refactoring Techniques in Java
kamilahsantos
1
44
[Codecon summit ] Minha aplicação virou um monstrinho e agora ?
kamilahsantos
2
130
[Semana de SI - each usp] Desmistificando a carreira em tecnologia: de estágio a liderança técnica
kamilahsantos
0
53
[Alura DLC] Como se manter técnica em uma carreira de gestão
kamilahsantos
1
40
[CPBR15] Como o github projects pode ajudar nos seus estudos
kamilahsantos
0
51
[Developer week latam] I will have to refactor ! And now ?Refactoring Techniques in Java
kamilahsantos
1
30
Other Decks in Programming
See All in Programming
「コンパイル時のユニットテスト」導入するとユニットテストを 書かなくてよくなるのか?
tomohisa
9
2.2k
上手な探索的テストとその上達方法について
matsu802
4
650
PHPでOfficeファイルを取り扱う! PHP Officeライブラリを プロダクトに組み込んだ話
hirobe1999
0
840
決断するための勇気、そのためのBacklog / Courage to make decisions, Backlog for that.
seike460
PRO
4
1.9k
生成 AI の中身を覗いてみよう〜基礎から医療現場での応用まで〜
soh9834
2
760
Crafting a Own PHP - ウキウキ手作りミニマリストPHP
uzulla
4
1.1k
コミュニティに参加したことで起きた変化
ohmori_yusuke
3
130
両面どころかインフラもTSでできるよ ~ 全方位TypeScriptによるプロダクト開発 ~
myfinder
8
2.2k
受託開発でGitLab CI を活用していく
xiombatsg
1
120
Open Source Swiftc Workshop
kitasuke
1
180
TDDと今まで
kanayannet
0
140
Cloud RunとCloud PubSubでサーバレスなデータ基盤2024 with Terraform / Cloud Run and PubSub with Terraform
shinyorke
7
1.9k
Featured
See All Featured
WebSockets: Embracing the real-time Web
robhawkes
59
6.9k
No one is an island. Learnings from fostering a developers community.
thoeni
14
2k
Imperfection Machines: The Place of Print at Facebook
scottboms
257
12k
We Have a Design System, Now What?
morganepeng
42
6.7k
The MySQL Ecosystem @ GitHub 2015
samlambert
242
12k
Documentation Writing (for coders)
carmenintech
59
3.8k
The Cult of Friendly URLs
andyhume
73
5.6k
Into the Great Unknown - MozCon
thekraken
10
830
Keith and Marios Guide to Fast Websites
keithpitt
407
22k
Thoughts on Productivity
jonyablonski
57
3.8k
Happy Clients
brianwarren
91
6.3k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
19
1.9k
Transcript
Junit: melhores práticas para testes unitários nas suas aplicações Java
04 Kamila Santos Dev Backend
None
AGENDA
PIRAMIDE DE TESTES SUITE DE TESTES TESTES UNITARIOS JUNIT ASSERTS
ANNOTATIONS EXEMPLO MELHORES PRÁTICAS TDD
None
coleção de casos de teste ou specs destinados a testar
um programa para verificar um determinado comportamento SUITE DE TESTES
SUITE DE TESTES As suítes de teste são usualmente divididas
de acordo com as funcionalidades do sistema ou com o tipo de teste executado.
Caso de Teste mostra os caminhos percorridos por um módulo,
Caso de Uso ou funcionalidade dentro do projeto. CASO DE TESTE
testam cada funcionalidade do código separadamente, cada unidade dele TESTE
UNITÁRIO
JUNIT
Plataforma para construção e execução de testes, JUNIT
Descoberta e execução de testes na JVM JUNIT PLATFORM
expõe a interface TestEngine, que define o contrato de execução
de qualquer ferramenta de testes sobre a plataforma do JUnit JUNIT PLATFORM
Contém os novos recursos para construção de testes usando o
JUnit, e fornece uma implementação de TestEngine para execução dos testes escritos com o JUnit Jupiter. JUNIT JUPITER
Fornece um TestEngine para execução de testes escritos em JUnit
3 e 4 JUNIT VINTAGE
é um método útil para determinar o status Aprovado ou
Reprovado de um caso de teste. Os métodos de declaração são fornecidos pela classe org.junit.Assert que estende a classe java.lang.Object ASSERTS
Há vários tipos de asserts como boolean, null... ASSERTS
assertTrue(condition) assertFalse(condition) assertNull(object) assertNotNull(object) assertEquals(expected, actual) ASSERTS
é uma forma especial de metadados sintáticos que pode ser
adicionada ao código-fonte Java para melhor legibilidade e estrutura do código ANNOTATIONS
@Test @Before @BeforeClass @After @AfterClass ANNOTATIONS
EXEMPLO BIT.LY/NERDGIRLZ35-DEMO BIT.LY/JUNIT-WEBFLUX
MELHORES PRÁTICAS
MELHORES PRÁTICAS
EVITE ESCREVER CASOS DE TESTE QUE POSSAM CAUSAR IMPACTO
EVITE ESCREVER CASOS DE TESTE QUE POSSAM CAUSAR IMPACTO
NOMES DE CASOS DE TESTES PADRÃO: testSampleServiceCre ateOrder()
SEMPRE TENTE FAZER UMA AFIRMAÇÃO PARA CADA MÉTODO DE TESTE
NÃO PASSE NO TESTE APENAS PARA PASSAR NELE!
NÃO ESCREVA SEUS PRÓPRIOS BLOCOS CATCH QUE EXISTEM APENAS PARA
PASSAR EM UM TESTE
COVERAGE E RELATÓRIO DE TESTES
MOCK SEUS DADOS
TESTE APENAS UMA UNIDADE DE CÓDIGO POR VEZ
TORNE CADA TESTE INDEPENDENTE DE TODOS OS OUTROS
NOMEIE SEUS TESTES DE FORMA LIMPA E CONSISTENTE
TODOS OS MÉTODOS, INDEPENDENTEMENTE DA VISIBILIDADE, DEVEM TER TESTES DE
UNIDADE APROPRIADOS
NÃO PULE CASO DE TESTES
red green refactor tdd
Referências https://elo7.dev/novidades-do-junit-5-parte-1/ https://elo7.dev/testes-codigo-mockito/ https://www.udemy.com/course/learn-unit-testing- with-spring-boot/
Referências https://examples.javacodegeeks.com/core- java/junit/junit-best-practices/ https://howtodoinjava.com/best-practices/unit- testing-best-practices-junit-reference-guide/ http://www.kyleblaney.com/junit-best-practice
OBRIGADA!