Tôi đã thực hiện tái cấu trúc "Replace Method with Method Object" được mô tả bởi Beck.Làm cách nào để đơn vị kiểm tra các phương thức trong đối tượng phương thức?
Bây giờ, tôi có một lớp với phương thức "run()" và một loạt các hàm thành viên phân tách tính toán thành các đơn vị nhỏ hơn. Làm cách nào để kiểm tra các hàm thành viên đó? Ý tưởng đầu tiên của tôi là các bài kiểm tra đơn vị của tôi về cơ bản là bản sao của phương thức "run()" (với các khởi tạo khác nhau), nhưng với các xác nhận giữa mỗi cuộc gọi đến các hàm thành viên để kiểm tra trạng thái tính toán.
(Tôi đang sử dụng Python và các mô-đun unittest.)
class Train:
def __init__(self, options, points):
self._options = options
self._points = points
# other initializations
def run(self):
self._setup_mappings_dict()
self._setup_train_and_estimation_sets()
if self._options.estimate_method == 'per_class':
self._setup_priors()
self._estimate_all_mappings()
self._save_mappings()
def _estimate_all_mappings():
# implementation, calls to methods in this class
#other method definitions
Tôi chắc chắn có những kỳ vọng về những gì các bang các thuộc tính thành viên nên trước và sau khi các cuộc gọi đến các phương pháp khác nhau như là một phần của việc triển khai phương thức run()
. Tôi có nên đưa ra các xác nhận về các thuộc tính "riêng tư" này không? Tôi không biết làm cách nào khác để bỏ qua những phương pháp này.
Tùy chọn khác là tôi thực sự không nên thử nghiệm những điều này.
Một số mã hoặc mã giả sẽ hữu ích khi hiểu câu hỏi của bạn. Từ những gì bạn đã viết, có vẻ như bạn có thể hưởng lợi từ phương thức unittest.TestCase.setUp(). http://docs.python.org/library/unittest.html#unittest.TestCase.setUp – msw
Tôi đã chỉnh sửa câu hỏi của bạn bằng mã bạn đã cung cấp. Bạn có thể kiểm tra thụt đầu dòng là chính xác hay không và chỉnh sửa lại nếu cần thiết? –
@ire_and_curses. Cảm ơn, đã chỉnh sửa một chút. –