7 điểm bởi tothefullest08 2025-03-23 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

1. Tổng quan

  • Chia sẻ cách xây dựng kiểm thử đơn vị theo phương pháp Sociable Test (kết nối với DB thật)
  • ORM như TypeORM có vấn đề về tính an toàn kiểu, nên cần kiểm thử bằng DB thật

2. Solitary Test vs Sociable Test

  • So sánh
    • Solitary Test thay thế phụ thuộc bằng Mock để kiểm thử độc lập (nhanh nhưng có thể khác với môi trường thực tế)
    • Sociable Test kiểm thử cùng với phụ thuộc bên ngoài thực tế (DB) để đảm bảo độ tin cậy (chậm hơn nhưng phát hiện sớm các vấn đề thực tế)
  • Giới hạn của Solitary Test
    • Chỉ với mocking thì khó phát hiện đầy đủ các vấn đề tương tác với DB thật
    • Vấn đề kiểm tra kiểu của TypeORM có thể dẫn đến lỗi runtime
  • Sự cần thiết của Sociable Test
    • Có thể xác minh các vấn đề về truy vấn phức tạp, transaction và thiết lập quan hệ thông qua tích hợp với DB thật
    • Thiết lập cơ sở dữ liệu kiểm thử để thực hiện kiểm thử cô lập dữ liệu theo phương thức transaction
  • Ưu điểm và điểm cần lưu ý của DB Sociable Test
    • Ưu điểm: kiểm thử có độ tin cậy cao, phát hiện sớm các vấn đề liên quan đến ORM, kiểm tra sự không khớp schema
    • Lưu ý: tốc độ kiểm thử chậm hơn, thiết lập môi trường phức tạp, cần quản lý transaction

3. Triển khai kiểm thử tích hợp DB trong NestJS

  • Thiết lập
    • Cấu hình kết nối DB kiểm thử dùng MySQL
    • Sử dụng transaction để rollback các thay đổi của từng bài kiểm thử
  • Tận dụng vòng đời của framework kiểm thử Jest
    • Sử dụng beforeAll / beforeEach / afterEach / afterAll
    • Thiết lập khởi tạo và kết nối DB, bắt đầu và kết thúc transaction

4. Kết luận

  • Khi viết kiểm thử đơn vị, nên kết hợp Solitary Test và Sociable Test một cách phù hợp
  • Sociable Test có thể rất hữu ích để ngăn ngừa các vấn đề liên quan đến ORM

Chưa có bình luận nào.

Chưa có bình luận nào.