Trang chủ » Blog » Hướng dẫn viết test Repository trong Spring Boot

Hướng dẫn viết test Repository trong Spring Boot

bởi CodeGym | 26/12/2023 17:16 | Blog

Bài viết này Codegym sẽ hướng dẫn mọi người cách test Repository trong Spring Boot với @DataJpaTest

  • Để tiến hành test Repository trong SpringBoot trước hết ta phải thêm thư viện spring-boot-starter-test và com.h2database
testCompile group: ‘org.springframework.boot’, name: ‘spring-boot-starter-test’, version: ‘2.2.0.RELEASE’

testCompile group: ‘com.h2database’, name: ‘h2’, version: ‘1.4.200’
  • Ta sẽ làm việc với entity là Category:
@Id

@GeneratedValue(strategy =GenerationType.IDENTITY)
private Long id;

@Column(nullable = false)
private String name;
  • Sau đó tạo một repository như sau:
@Repository
public interface CategoryRepository extends JpaRepository<Category, Long> {
    Category findByName(String categoryName);
}
  • Đầu tiên ta tạo một class có tên là CategoryRepositoryTest trong src/test/java như sau:
@DataJpaTest
public class CategoryRepositoryTest {
    @Autowired
    private TestEntityManager entityManager;

    @Autowired
    private CategoryRepository categoryRepository;

    @BeforeEach
    void init() {
        Category category = new Category();
        category.setName(“Java”);
        entityManager.persist(category);
        entityManager.flush();
    }
  • Annotation @DataJpaTest sẽ cung cấp cho ta một số cài đặt cần thiết cho việc test như là cấu hình in memory-database h2, cài đặt Hibernate, Spring Data, DataSource, …
  • Và để thực hiện được việc test thì chúng ta cần phải có sẵn một số bản ghi, vì vậy chúng ta sử dụng đến TestEntityManager.
  • Bây giờ chúng ta sẽ viết test case đầu tiên
@DisplayName(“findByName can return a category has name Java”)
@Test
public void whenFindByName_thenReturnCategory () {
    assertThat(categoryRepository.findByName(“Java”).getName()).isEqualTo(“Java”);
}
  • Trong đoạn code trên assertThat() là một phương thức có sẵn trong thư viện AssertJ được đi kèm với dự án Spring Boot

Nhấn vào đây để chạy test case vừa viết

Author: Nguyễn Minh Quân

Tags:

0 Lời bình

Gửi Lời bình

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

BÀI VIẾT LIÊN QUAN

BẠN MUỐN HỌC LẬP TRÌNH?

GỌI NGAY

098 953 44 58

Đăng ký tư vấn lộ trình học lập trình

Đăng ký tư vấn, định hướng lộ trình học và giải đáp các thắc mắc về ngành nghề – Miễn phí – Online.

11 + 15 =

TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM
TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM