Không copy nguyên bản. Dữ liệu production chứa thông tin cá nhân (email, số điện thoại, địa chỉ, lịch sử thanh toán); đưa nó xuống môi trường có quyền truy cập rộng hơn là rủi ro lộ dữ liệu và vi phạm cam kết với người dùng. Ngoài ra bản dump lớn làm test chậm và không tái lập được — hôm nay chạy khác hôm qua.
Cách làm thay thế, dùng kết hợp:
- Builder/factory sinh dữ liệu tối thiểu cho từng test. Mỗi test tự tạo đúng thứ nó cần, phần còn lại lấy giá trị mặc định. Test đọc được là hiểu ngay điều kiện đầu vào.
js
const order = await makeOrder({ status: 'pending', total: 250_000 })- Seed cố định chỉ cho dữ liệu tham chiếu: danh mục tỉnh thành, loại sản phẩm, cấu hình thuế. Loại này ít thay đổi và mọi test đều cần.
- Khi cần dữ liệu giống thật về quy mô (đo hiệu năng, kiểm tra index): sinh khối lượng lớn bằng script, hoặc dùng bản dump đã ẩn danh — thay email/tên/số điện thoại bằng giá trị giả, giữ nguyên phân bố và quan hệ khoá ngoại.
Điều nên tránh: một file seed khổng lồ dùng chung cho toàn bộ suite. Nó tạo ràng buộc ngầm giữa các test, sửa một dòng seed làm đỏ chục test không liên quan, và khi đọc test không ai biết dữ liệu đầu vào thực sự là gì.