Tôi đang trong một dự án mà chúng tôi đang bắt đầu tái cấu trúc một số cơ sở mã lớn. Một vấn đề nảy sinh ngay lập tức là mỗi tệp nhập nhiều tệp khác. Làm thế nào để tôi một cách thanh lịch giả lập điều này trong bài kiểm tra đơn vị của tôi mà không cần phải thay đổi mã thực tế để tôi có thể bắt đầu viết đơn vị kiểm tra?Python, kiểm tra đơn vị và nhập khẩu mocking
Ví dụ: Tệp có chức năng tôi muốn kiểm tra, nhập 10 tệp khác là một phần của phần mềm của chúng tôi chứ không phải là libs lõi python.
Tôi muốn có thể chạy các bài kiểm tra đơn vị một cách riêng biệt nhất có thể và bây giờ tôi sẽ chỉ kiểm tra các hàm không phụ thuộc vào những thứ từ các tệp đang được nhập.
Cảm ơn tất cả các câu trả lời.
Tôi thực sự không biết mình muốn làm gì từ đầu nhưng giờ tôi nghĩ mình biết.
Vấn đề là một số lần nhập chỉ có thể thực hiện được khi toàn bộ ứng dụng đang chạy vì một số phép thuật tự động của bên thứ ba. Vì vậy, tôi đã phải thực hiện một số sơ khai cho các mô-đun này trong một thư mục mà tôi đã chỉ ra với sys.path
Bây giờ tôi có thể nhập tệp chứa các hàm tôi muốn viết thử nghiệm trong tệp thử nghiệm đơn vị của mình mà không có khiếu nại về thiếu mô-đun.
Bạn muốn thêm 'try: finally:' trên phương thức mock_import, để tránh rời khỏi hệ thống với gói được nhập thay vì nhập mặc định trong trường hợp lỗi – Yonatan
@Yonatan: bạn nói đúng, cảm ơn! Tôi đã sửa đổi mã của mình. – DzinX