擅长:python、mysql、java
<blockquote>
<p>How could I confirm later that the child mocks spawned from calling <code>parent_mock</code>?</p>
</blockquote>
<p>好吧,有一个未记录的属性<code>_mock_new_parent</code>,可以这样使用它。。。在</p>
<pre><code>>>> from unittest.mock import MagicMock
>>> parent_mock = MagicMock()
>>> child_mock1 = parent_mock(a=1)
>>> child_mock2 = parent_mock(b='spam')
>>> child_mock1._mock_new_parent is parent_mock
True
>>> child_mock2._mock_new_parent is parent_mock
True
</code></pre>
<p>……但你所有其他问题的答案似乎都是“你不能”。在</p>
<p>我想你可以用这样的方法子类<code>MagicMock</code>来跟踪它的子类。。。在</p>
^{pr2}$
<p>…那你就可以。。。在</p>
<pre><code>>>> parent_mock = MyMock()
>>> child_mock1 = parent_mock(a=1)
>>> child_mock2 = parent_mock(b='spam')
>>> parent_mock._kids
[((), {'a': 1}, <MyMock name='mock()' id='140358357513616'>),
((), {'b': 'spam'}, <MyMock name='mock()' id='140358357513616'>)]
>>> parent_mock._kids[0][2] is child_mock1
True
>>> parent_mock._kids[1][2] is child_mock2
True
</code></pre>