Trong báo cáo sơ lược của tôi, tôi càng ngày càng thấy kết quả thử nghiệm dựa trên mô hình với việc tiêm phụ thuộc. Nhiều người trong số các phụ thuộc là tĩnh, nhưng vì chúng tôi muốn thử nghiệm các phương pháp trong sự cô lập họ đang thay đổi với các thành viên dụ, như ví dụ sau:Các vấn đề về hiệu năng từ tiêm phụ thuộc
class ShortLivedThing {
IDependency1 dep1;
IDependency1 dep2;
IDependency1 dep3;
...
int TheRealData;
// Constructor used in production
public ShortLivedThing() {
dep1 = new Dep1(); dep2 = new Dep2(); dep3 = new Dep3();
}
// DI for testing
public ShortLivedThing(IDependency1 d1, IDependency2 d2, IDependency3 d3) {
dep1 = d1(); dep2 = d2(); dep3 = d3();
}
}
Đổi lại phụ thuộc phần lớn thời gian có phụ thuộc khác và vân vân. Điều này dẫn đến sự khởi tạo của một đối tượng (chủ yếu là "tĩnh") mỗi khi thực hiện cuộc gọi phương thức bên ngoài các thử nghiệm. Mỗi đối tượng là rất nhỏ (chỉ là một vài con trỏ), nhưng hiệu ứng cây biến điều này thành một hit hiệu suất ngày càng tăng.
Chúng ta có thể làm gì với nó?
Bạn có định hình mã sản xuất hoặc thử nghiệm của mình không? –
Tôi đang lược tả mã sản xuất. Các thử nghiệm chạy nhanh vì chúng không xây dựng các phụ thuộc của các phụ thuộc. –