Spring Boot cho bạn một kim tự tháp test: unit test nhanh không cần Spring, các slice test tập trung chỉ nạp một phần context, và một vài integration test nạp toàn bộ context. Chọn đúng mức cho mỗi test chính là kỹ năng senior ở đây.
Unit test — hoàn toàn không Spring
Constructor injection nghĩa là phần lớn logic service chẳng cần Spring; chỉ cần mock các đối tượng cộng tác:
{
mock(PriceRepository.class);
(repo.base()).thenReturn(BigDecimal.TEN);
(repo);
assertThat(svc.priceOf()).isEqualByComparingTo();
}
