Hồi còn là sinh viên, mặc dù đã code không biết bao nhiêu bài tập, đồ án cuối kỳ thế nhưng chúng đều có 1 điểm chung là không có unit test. Nói vậy thôi, chứ code đồ án không đã kịp chưa mà unit test gì đây nữa. Thế nhưng khác hẵn với sinh viên, các lập trình viên khi vào công ty sau mỗi task bắt buộc phải có unit test cho phần của mình luôn, ở công ty mình unit test là bắt buộc, đôi khi viết unit test còn nhiều hơn viết code =))).
Mình có đi workshop 1 buổi build dự án NodeJS của Grokking team. Có 1 câu hỏi mà anh diễn giả hỏi mọi người mà mình rất tâm đắc, anh hỏi “Các bạn có biết phanh xe máy để làm gì không?” hỏi ngớ ngẫn thiệt để phanh chứ làm gì! Nhưng không anh trả lời rằng “Để chạy nhanh hơn”, Chúng ta sẽ có xu hướng chạy nhanh hơn khi biết rằng phanh xe của mình đang hoạt động tốt. Unit test cũng vậy, nó giống như một cái phanh xe, chúng ta sẽ an tâm phát triển dự án thêm các tính năng mới, nếu có sai xót gì thì unit test ngay lập tức báo lỗi, lúc đó chúng ta sẽ biết được chỗ nào đang sai và sữa rất nhanh từ đó cũng giúp tốc độ phát triển dự án đi nhanh hơn. Ở công ty mình, mỗi task yêu cầu unit test phải cover khoảng 80% line of code của task đó đấy.
Junit cơ bản
Junit là một trong những Java test framework phổ biến và được sử dụng rộng rãi để triển khai unit-test. Dưới đây là loạt bài hướng dẫn Junit 5 cơ bản:
- Giới thiệu JUnit 5
- @Test JUnit 5
- @DisplayName JUnit 5
- @TestInstance JUnit 5
- Assertion JUnit 5
- Tag JUnit 5
- @Parameterized JUnit 5
- @RepeatedTest JUnit 5
- @BeforEach, @BeforeAll, @AfterEach, @AfterAll JUnit 5
- @Disable JUnit 5
- Unit test conditions JUnit 5
- @RunWith annotation
- Order unit test
- Dynamic test
JUnit – Mockito Integration
- Mockito – Junit 5
- @Mock, @Spy, @Captor và @InjectMocks
- Mock static method
- Mock và Spy
- ArgumentCaptor
- Mockito-core và mockito-all
Ở trên là loạt bài hướng dẫn JUnit 5 được mình đọc và biên soạn lại theo từng chủ để nhỏ, các bạn có thể đọc từng bài, đọc tới đâu hiểu tới đó không phải choáng ngợp khi đọc docs chính của JUnit 5.