Đừng. Không kiểm tra đơn vị I / O. Nó là một sự lãng phí thời gian.
Logic kiểm tra đơn vị. Nếu có rất nhiều logic mà bạn muốn kiểm tra trong mã I / O, bạn nên cấu trúc lại mã của mình để tách logic của cách bạn thực hiện I / O và những gì tôi / O thực hiện với công việc thực hiện I / O thực tế (không thể kiểm tra được).
Để giải thích một chút, nếu bạn muốn kiểm tra máy chủ HTTP, bạn nên thực hiện thông qua hai loại kiểm tra: kiểm tra tích hợp và kiểm tra đơn vị. Các bài kiểm tra đơn vị không nên tương tác với I / O. Điều đó chậm và đưa ra nhiều điều kiện lỗi không liên quan đến tính chính xác của mã của bạn. Các bài kiểm tra đơn vị không nên tuân theo trạng thái của mạng của bạn!
Mã của bạn nên tách biệt:
- Logic xác định thông tin cần gửi
- Logic xác định byte nào sẽ gửi để gửi một bit thông tin cụ thể (làm cách nào để mã hóa phản hồi, v.v. thành byte thô) và
- Cơ chế thực sự ghi các byte đó vào một socket.
Hai cái đầu liên quan đến logic và quyết định và cần kiểm tra đơn vị. Việc cuối cùng không liên quan đến việc đưa ra nhiều quyết định nếu có bất kỳ quyết định nào và có thể được kiểm tra tuyệt vời bằng cách sử dụng thử nghiệm tích hợp.
Đây chỉ là thiết kế tốt nói chung, nhưng một trong những lý do cho điều đó là nó làm cho nó dễ dàng hơn để kiểm tra.
Dưới đây là một số ví dụ:
- Nếu bạn đang viết mã nhận dữ liệu từ cơ sở dữ liệu quan hệ, bạn có thể kiểm tra đơn vị cách bạn ánh xạ dữ liệu được trả về từ các truy vấn quan hệ đến mô hình ứng dụng của bạn.
- Nếu bạn đang viết mã ghi dữ liệu vào cơ sở dữ liệu quan hệ, bạn có thể kiểm tra đơn vị phần dữ liệu nào bạn muốn ghi vào cơ sở dữ liệu mà không thực sự kiểm tra các truy vấn SQL cụ thể mà bạn sử dụng. Ví dụ: bạn có thể giữ hai bản sao trạng thái ứng dụng của mình trong bộ nhớ: một bản sao thể hiện cơ sở dữ liệu trông như thế nào và bản sao hoạt động. Khi bạn muốn đồng bộ hóa với cơ sở dữ liệu, bạn cần phải tìm khác biệt và ghi sự khác biệt vào cơ sở dữ liệu. Bạn có thể dễ dàng kiểm tra đơn vị mã đó.
- Nếu bạn đang viết mã đọc một cái gì đó từ tệp cấu hình, bạn muốn kiểm tra trình phân tích định dạng tệp cấu hình của mình, nhưng với các chuỗi từ tệp nguồn thử nghiệm của bạn thay vì các chuỗi bạn nhận được từ đĩa.