1.0 KiB
1.0 KiB
- Tuân thủ nguyên tắc First(Fast, Independent, Repeatable, Self-Validating, Timely)
- Tên test rõ ràng có ý nghĩa
- Structure Test
- Arrange: Khởi tạo input
- Act: Thực thi hàm | Logic
- Assert: Kiểm tra output
- Assert: Tiếp tục test (testify/assert)
- Error: Dừng ngay lập tức
- Test tất cả giá trị
- Normal: các dữ liệu bình thường (a/b - b/a)
- Biên của hàm: các giới hạn trong hàm(0/a - 0/b)
- Lỗi: dữ liệu lỗi (a/0 - b/0)
- Tránh logic phức tạp
- Test không nên chứa vòng lặp hoặc
iftrừ khi thật sự cần - Mỗi test nên kiểm tra một logic đơn lẻ và rõ ràng
- Test không nên chứa vòng lặp hoặc
- Mock External Dependencies
- Dùng mock: DB,API,File,Email (gomock,testify/mock)
- Test song song không phụ thuộc
- Tối thiểu hóa side effect
- Không test ghi file, database, hoặc gọi API thật trong unit test.
- Nếu cần test integration, viết riêng ở layer khác (Integration Test).
- Kiểm tra Coverage
- Sử dụng t.Run cho subtests