Đánh giá từ sơ đồ, Sản phẩm là một lớp dữ liệu câm, không có chức năng để kiểm tra. Vì vậy, tôi sẽ bắt đầu viết các bài kiểm tra cho (và triển khai, kiểu TDD) Dòng đầu tiên và sau đó Đặt hàng, lên thang phụ thuộc. Thông thường có thể kiểm tra các lớp cấp thấp hơn của bạn trước khi bắt đầu làm việc với các lớp cấp cao hơn (nghĩa là phụ thuộc vào cấp thấp hơn). Điều này làm cho việc bắt lỗi hiệu quả hơn.
Việc bạn có cần sử dụng các đối tượng giả hay không phụ thuộc vào các phụ thuộc thực tế của lớp được kiểm tra. Nếu đây là các lớp đơn giản mà bạn có thể dễ dàng khởi tạo và thiết lập với bất kỳ dữ liệu / trạng thái mong muốn nào cần thiết cho các bài kiểm tra của mình, bạn không cần phải giả. (Đây có vẻ là trường hợp thiết kế ví dụ của bạn ở đây.) Tuy nhiên, nếu bất kỳ phụ thuộc nào khó khởi tạo / có phụ thuộc rộng rãi / có tác dụng phụ không mong muốn / phụ thuộc vào tài nguyên bên ngoài như DB, thì nó có ý nghĩa để sử dụng một đối tượng giả thay thế.