Nếu turn_twizzles
, push_buttons
và move_mountain
được công khai và được gọi bởi mã khác, thì tôi nghĩ điều quan trọng là phải cấu trúc lại các thử nghiệm của bạn để kiểm tra các chức năng này một cách riêng lẻ.
Đáng tiếc là sau khi cấu trúc lại của bạn, bạn có một vấn đề: để kiểm tra đơn vị do_everything
bạn cần để có thể chế nhạo turn_twizzles
, push_buttons
và move_mountain
. Viết bài kiểm tra do_everything
mà không chế nhạo các phụ thuộc sẽ là một bài kiểm tra tích hợp - không nhất thiết là điều xấu tùy thuộc vào kế hoạch kiểm tra của bạn, nhưng sẽ không có nhiều lợi ích vì bạn đã kiểm tra riêng ba chức năng nhỏ hơn. Đây có thể là thời điểm thích hợp để bạn thiết kế lại thành phần này và cộng tác với các đối tượng khác để thực hiện tất cả công việc do_everything
.
Nếu turn_twizzles
, push_buttons
và move_mountain
không được gọi ra bên ngoài, chúng nên được đánh dấu là riêng tư và tôi không khuyên bạn nên thử nghiệm chúng riêng biệt do_everything
. Điều này là do từ góc nhìn bên ngoài, do_everything
sẽ là đơn vị nhỏ nhất (vì những cái khác không thể truy cập được). Cũng xem câu trả lời này về việc chia nhỏ các phương thức bằng các phương thức riêng tư.