Đừng đợi nhau nữa: Giải ngố về "Mock Data" và cách nó cứu rỗi quy trình làm việc của bạn!
Chào các bạn,
Có bao giờ dự án của bạn rơi vào cảnh bế tắc này chưa: Frontend ngồi chơi xơi nước vì Backend chưa viết xong API? Hoặc khi bạn viết Unit Test cho một service gọi sang bên thứ ba (như cổng thanh toán), nhưng mỗi lần chạy test lại bị trừ tiền (hoặc bị rate limit)?
Giải pháp cho những pha "khóc dở mếu dở" này thực ra vô cùng đơn giản. Đó chính là sử dụng Mock Data (hay còn gọi vui là "móc data"). Vậy nó là gì mà thần thánh thế?
1. Mock Data thực chất là gì?
Nói một cách dân dã, Mock Data là dữ liệu giả, dữ liệu "pha ke". Nó được tạo ra để bắt chước cấu trúc, định dạng và hành vi của dữ liệu thật trong hệ thống, nhưng hoàn toàn không mang giá trị thực tế hay lưu trong database thật.
Nếu bạn là diễn viên đang tập dượt một cảnh đấu kiếm, Mock Data chính là thanh kiếm gỗ. Nó giúp bạn tập luyện các chiêu thức một cách an toàn mà không sợ chém trúng ai, trước khi bước ra sân khấu với thanh kiếm sắt thật.
2. Tại sao chúng ta lại "phát cuồng" vì Mock Data?
Không phải tự nhiên mà khái niệm này lại quan trọng đến vậy trong vòng đời phát triển phần mềm. Đây là những lý do cốt lõi:
- Giải phóng nút thắt cổ chai (Frontend vs Backend): Trong mô hình phát triển hiện đại, FE và BE làm việc song song. Thay vì FE phải đợi BE code xong API, BE chỉ cần thống nhất trước một "bản hợp đồng" (API Contract/Swagger). Dựa vào đó, tạo ra các API trả về Mock Data. Vậy là FE cứ thế mà gắn data giả vào giao diện, lúc nào BE làm xong hàng thật thì chỉ cần đổi URL là xong!
- Unit Testing an toàn và siêu tốc: Khi viết Unit Test cho một hàm xử lý logic, bạn muốn kiểm tra xem logic hàm đó đúng hay sai, chứ không phải kiểm tra xem database có đang sống hay không. Bằng cách "mock" các truy vấn database, bài test của bạn sẽ chạy trong một phần nghìn giây và không bao giờ rác database thật.
- Giả lập các "Tình huống éo le" (Edge cases): Làm sao bạn test được giao diện của mình sẽ hiện thông báo gì khi server trả về lỗi 500 Internal Server Error hoặc khi request bị timeout mất 10 giây? Bạn không thể tự đánh sập server thật được! Lúc này, chỉ cần cấu hình cho hệ thống mock trả về lỗi là xong.
3. Những công cụ "móc" phổ biến
Tùy vào mục đích sử dụng, chúng ta có các loại "đồ chơi" khác nhau:
Mock API Server: Dành cho Frontend hoặc App Mobile gọi vào. Các công cụ cực kỳ phổ biến hiện nay có thể kể đến như:
Postman (Mock Servers): Setup cực nhanh nếu đã có sẵn collection.
MockAPI.io / WireMock: Chuyên trị việc tạo RESTful API giả lập với giao diện kéo thả dễ dàng.
Mock trong Code (Dành cho Unit Test):
Nếu bạn code PHP (Laravel), Mockery là cái tên quá quen thuộc để mock các class hoặc interface.
Nếu bạn chơi với Go (Golang), Testify/mock hay GoMock là những công cụ không thể thiếu.
Với Node.js, Jest hỗ trợ tính năng mock function cực kỳ mạnh mẽ.
Lời kết
Việc áp dụng Mock Data không chỉ là một kỹ thuật coding, mà nó còn là một tư duy làm việc. Nó giúp các team hoạt động độc lập hơn, test code tự tin hơn và giảm thiểu tối đa những cuộc cãi vã không đáng có.
Từ giờ, nếu Frontend có giục API, bạn biết phải quăng cho họ cái gì rồi đấy! Code vui vẻ nhé anh em!
All Rights Reserved