Tôi có một cuộc gọi hàm trả về một đối tượng:Mocking tính lồng nhau với mock
r = Foo(x,y)
nơi r
có một tập hợp phong phú các thuộc tính lồng nhau. Ví dụ: tôi có thể truy cập r.prop_a.prop_b.prop_c
. Tôi muốn thử Foo
, như vậy mà một tài sản cụ thể của lá r
được sửa đổi, ví dụ như vậy r.prop_a.prop_b.prop_c
trả về một giá trị dưới sự kiểm soát của tôi:
>> r = Foo(x,y)
>> r.prop_a.prop_b.prop_c
'fish'
>> # some mock magic patching of Foo is taking place here
>> r = Foo(x,y)
>> r.prop_a.prop_b.prop_c
'my_fish'
Tôi không quan tâm về các tính chất trung gian nhiều.
Có cách nào thanh lịch để giả lập các thuộc tính lồng nhau với mock không?
Nó có thể rất tốt được rằng những thứ nhất định còn lại theo cách của họ. Kết thúc bằng cách sử dụng thực tế thay vì giả. – Oleksiy