擅长:python、mysql、java
<p>标准的方法是使用<code>patch</code>和<code>mock</code>来模拟<code>FeedGenerator</code>类</p>
<p>如果将<code>FeedGenerator</code>作为参数传入,则不需要<code>patch</code>:</p>
<pre><code>def generate_feed(file_list: List[File], fg: FeedGenerator) -> None:
# do stuff to fg based on file_list
</code></pre>
<p>现在您的测试可以:</p>
<pre><code>file_list = [File("foo"), File("bar")] # or whatever?
fg = MagicMock(spec=FeedGenerator)
generate_feed(file_list, fg)
assert fg.add_entry.call_count == len(file_list)
# etc
</code></pre>