Better Unit Testing
-
Upload
artem-tabalin -
Category
Software
-
view
26 -
download
0
Transcript of Better Unit Testing
![Page 1: Better Unit Testing](https://reader031.fdocuments.in/reader031/viewer/2022030306/58d0b2271a28ab1d3a8b507f/html5/thumbnails/1.jpg)
Unit Testing!How to write better unit tests!
ARTEM TABALIN!
![Page 2: Better Unit Testing](https://reader031.fdocuments.in/reader031/viewer/2022030306/58d0b2271a28ab1d3a8b507f/html5/thumbnails/2.jpg)
Tests Classification!
Unit Tests!
Integration Tests!
Functional Tests (e2e)!!
!
AB
C
AB
C
AB
CD
![Page 3: Better Unit Testing](https://reader031.fdocuments.in/reader031/viewer/2022030306/58d0b2271a28ab1d3a8b507f/html5/thumbnails/3.jpg)
Why Unit Testing?!• Assurance of correctness!
• Eliminates risk of changes!
• Ensures better design!
• Provides documentation!
• Reduce debug time!
• Makes to write loosely coupled code!
• Gives confidence!
![Page 4: Better Unit Testing](https://reader031.fdocuments.in/reader031/viewer/2022030306/58d0b2271a28ab1d3a8b507f/html5/thumbnails/4.jpg)
Unit Tests Best Practices!
Fast as possible!
Test first!
Arrange → Act → Assert!
Assert first!
Tests isolation!
Test doubles!
![Page 5: Better Unit Testing](https://reader031.fdocuments.in/reader031/viewer/2022030306/58d0b2271a28ab1d3a8b507f/html5/thumbnails/5.jpg)
Arrange → Act → Assert!
![Page 6: Better Unit Testing](https://reader031.fdocuments.in/reader031/viewer/2022030306/58d0b2271a28ab1d3a8b507f/html5/thumbnails/6.jpg)
Test Isolation!
![Page 7: Better Unit Testing](https://reader031.fdocuments.in/reader031/viewer/2022030306/58d0b2271a28ab1d3a8b507f/html5/thumbnails/7.jpg)
Test Isolation!
![Page 8: Better Unit Testing](https://reader031.fdocuments.in/reader031/viewer/2022030306/58d0b2271a28ab1d3a8b507f/html5/thumbnails/8.jpg)
Test Doubles!!
!
!
!
• Isolate testing component!
• Test integration (not only state)!
!
Dummy
Stub Spy Mock
Fake
![Page 9: Better Unit Testing](https://reader031.fdocuments.in/reader031/viewer/2022030306/58d0b2271a28ab1d3a8b507f/html5/thumbnails/9.jpg)
Mockito!!
!
!
!
![Page 10: Better Unit Testing](https://reader031.fdocuments.in/reader031/viewer/2022030306/58d0b2271a28ab1d3a8b507f/html5/thumbnails/10.jpg)
Mockito – Example!
![Page 11: Better Unit Testing](https://reader031.fdocuments.in/reader031/viewer/2022030306/58d0b2271a28ab1d3a8b507f/html5/thumbnails/11.jpg)
Mockito - Mocking!
![Page 12: Better Unit Testing](https://reader031.fdocuments.in/reader031/viewer/2022030306/58d0b2271a28ab1d3a8b507f/html5/thumbnails/12.jpg)
Mockito - Mocking!
![Page 13: Better Unit Testing](https://reader031.fdocuments.in/reader031/viewer/2022030306/58d0b2271a28ab1d3a8b507f/html5/thumbnails/13.jpg)
Mockito - Verifying!
![Page 14: Better Unit Testing](https://reader031.fdocuments.in/reader031/viewer/2022030306/58d0b2271a28ab1d3a8b507f/html5/thumbnails/14.jpg)
Mockito Limitations!
• Final classes & methods!
• Static methods!
• Private methods!
• Enums!
• Primitive types!
• Anonymous classes!
!
![Page 15: Better Unit Testing](https://reader031.fdocuments.in/reader031/viewer/2022030306/58d0b2271a28ab1d3a8b507f/html5/thumbnails/15.jpg)
Thank you!!