Tư duy của lập trình viên để tạo ra các test case hữu ích
(meetup.toast.com)Kiểm thử là yếu tố không thể thiếu trong phát triển phần mềm hiện đại, nhưng test case suy cho cùng cũng là mã do lập trình viên viết ra, nên đôi khi vẫn có thể phát sinh vấn đề. Xin giới thiệu một bài viết bàn về các test case “hữu ích” dưới góc nhìn hướng đối tượng. (Tiếng Hàn)
Điểm cốt lõi là: test là [một mô-đun có trách nhiệm kiểm thử các mô-đun khác đã được đóng gói]. Điều đó có nghĩa là test cũng rõ ràng là một phần của mã đang được phát triển, vì vậy cần tuân thủ các nguyên tắc hướng đối tượng và liên tục được cải thiện, refactor. Từ đó, cũng có thể suy ra theo các nguyên tắc SOLID rằng test case không nên truy cập hay phụ thuộc vào các thành phần nội bộ cụ thể của mô-đun được kiểm thử, chẳng hạn như private method. Điều mà test case phải kiểm tra, đến cùng, phải là trách nhiệm trừu tượng của chính mô-đun đó; vì thế việc kiểm thử chỉ nên được thực hiện thông qua giao diện bên ngoài phản ánh trách nhiệm ấy.
Cá nhân tôi thấy đây có lẽ là một trong nhiều ngọn núi mà người mới học lập trình phải vượt qua. Khi mới học lập trình hướng đối tượng, tôi cũng từng nghe trong lớp rằng “không nên test trực tiếp private method” và được giải thích lý do vì sao, nhưng thành thật mà nói lúc đó tôi chưa thực sự hiểu. Mãi rất lâu sau tôi mới phần nào hiểu được nội dung ở trên.
Chưa có bình luận nào.