Testing
Project : Github
Unit Testing , Integration Testing and Functional Testing
0. Proyekteki butun classlari test etmek , yeni konkret olaraq db ile ishleyen classlari test etmek Unit Testing adlanir. Yeni Proyektdeki butun komponentler bir biri ile duzgun ishleye bilirmi ? Meselen UserServiceImpl istifade olunursa ve daxilinde UserDataInter obyekti varsa ve esl data ile ishlemirse, bu Unit Testing adlanir.
1. Integration Testing - Unit Testingdir. Sadece burada esl data ile ishleyir.
Lazim olan annotationlar :
@RunWith - Spring Context i ishe salir
@SpringBootTest
@DataJpaTest - Test muhitinde DB ya qoshulmagimiza imkan yaradir
Autowired istifade olunur.
2. Functional Testing api uchun yazilmish testing sayilir. Meselen yazilan api uchun bir client tool yazilir ve sorgularla muraciet olunaraq neticeler muqayise olunur.
TDD - Test Driven Development
Testler yazilandan sonra uygun servis ve ya classlar yazilir
BDD - Behaviour Driven Development
Koddan anlayishi olmayan bir adamin basha dushmesi uchun istifade olunan test yazilma metodu
Code Under Test
Yeni hal hazirda test altinda olan application nezerde tutulur.
Code Covarage
Ola biler ki, test etdiyimiz zaman metodun tam ishlemesini test ede bilmeyek. Bunu tam ehate etmek lazimdir. Bu termin Code Covarage adlanir
InjectMock
Bu annotation hal hazirda test etdiyimiz classinin obyektini yaradir. Meselen
UserServiceImpl
Mock
Tutaq ki UserDataInter in cagrilmasini simulasiya edirik. O metod cagrilsa bele eslinde bazaya muraciet olunmur, yaratdigimiz list ve ya her hansi datani geriye return edirik.
Static metodu Mock elemek uchun PowerMock dan istifade olunur.
Spy
Spy real obyekt yaradir
Mock annotation ile butun class i mock elemek olur, amma spy vasitesile ile class daxilinde lazim olan hisseleri mock ede bilerik. Behaviour verir metodlara.
Unit Testing , Integration Testing and Functional Testing
0. Proyekteki butun classlari test etmek , yeni konkret olaraq db ile ishleyen classlari test etmek Unit Testing adlanir. Yeni Proyektdeki butun komponentler bir biri ile duzgun ishleye bilirmi ? Meselen UserServiceImpl istifade olunursa ve daxilinde UserDataInter obyekti varsa ve esl data ile ishlemirse, bu Unit Testing adlanir.
1. Integration Testing - Unit Testingdir. Sadece burada esl data ile ishleyir.
Lazim olan annotationlar :
@RunWith - Spring Context i ishe salir
@SpringBootTest
Autowired istifade olunur.
2. Functional Testing api uchun yazilmish testing sayilir. Meselen yazilan api uchun bir client tool yazilir ve sorgularla muraciet olunaraq neticeler muqayise olunur.
TDD - Test Driven Development
Testler yazilandan sonra uygun servis ve ya classlar yazilir
BDD - Behaviour Driven Development
Koddan anlayishi olmayan bir adamin basha dushmesi uchun istifade olunan test yazilma metodu
Code Under Test
Yeni hal hazirda test altinda olan application nezerde tutulur.
Code Covarage
Ola biler ki, test etdiyimiz zaman metodun tam ishlemesini test ede bilmeyek. Bunu tam ehate etmek lazimdir. Bu termin Code Covarage adlanir
InjectMock
Bu annotation hal hazirda test etdiyimiz classinin obyektini yaradir. Meselen
UserServiceImpl
Mock
Tutaq ki UserDataInter in cagrilmasini simulasiya edirik. O metod cagrilsa bele eslinde bazaya muraciet olunmur, yaratdigimiz list ve ya her hansi datani geriye return edirik.
Static metodu Mock elemek uchun PowerMock dan istifade olunur.
Spy
Spy real obyekt yaradir
Mock annotation ile butun class i mock elemek olur, amma spy vasitesile ile class daxilinde lazim olan hisseleri mock ede bilerik. Behaviour verir metodlara.