Có lẽ tôi cho thấy sự thiếu hiểu biết về tiêm phụ thuộc và thử nghiệm của mình, nhưng tôi không hiểu cách sử dụng tiêm phụ thuộc với các lớp không triển khai giao diện sẽ giúp tôi gì cả khi thử nghiệm?Mã kiểm tra phụ thuộc vào Thư viện doanh nghiệp mặc dù nó không cung cấp giao diện?
Ví dụ: trong tài liệu Thư viện doanh nghiệp 5.0, nó thảo luận về việc sử dụng vùng chứa Unity để tạo các phiên bản. Nó nói rằng điều này viện trợ "testability: Nó là tầm thường để cô lập các lớp học từ phụ thuộc khi sử dụng phong cách tiêm phụ thuộc." MSDN
Làm cách nào để sử dụng điều này trong các thiết bị thử nghiệm đơn vị của tôi? Ví dụ của họ có một hàm tạo với tham số là các lớp thay vì giao diện:
public class TaxCalculator
{
private ExceptionManager _exceptionManager;
private LogWriter _logWriter;
public TaxCalculator(ExceptionManager em, LogWriter lw)
{
this._exceptionManager = em;
this._logWriter = lw;
}
}
Tôi đã thay đổi tiêu đề để phản ánh thực tế rằng tôi không muốn kiểm tra Thư viện doanh nghiệp nhưng mã của riêng tôi phụ thuộc vào Thư viện doanh nghiệp. –
Tôi đã cập nhật câu trả lời để nói rõ ràng cách bạn sẽ kiểm tra mã của riêng mình theo ánh sáng của các phụ thuộc bên ngoài. –
Btw xác định giao diện riêng mô tả nhu cầu của ứng dụng của bạn (ví dụ: ghi nhật ký) có vẻ tốt. Việc tách cơ sở hạ tầng khỏi mã kinh doanh là rất tốt. Nhưng mất tính năng khuôn khổ mát mẻ, thêm một mức độ trừu tượng khác, mất tối ưu hóa và hiệu suất, chắc chắn là không tốt. –