擅长:python、mysql、java
<p>大体上,你的选择是:</p>
<ul>
<li>使用<a href="https://docs.python.org/3/library/unittest.mock.html" rel="nofollow">^{<cd1>} library</a>,它可以动态地将函数替换为一个总是给出相同结果的伪函数(或者使用另一个执行相同操作的模拟库)。这意味着您不必修改您的函数;然而,理性的人可能不同意使用mock进行monkey补丁是否是一个好的实践,即使对于调试也是如此。我认为这是Python中使用最广泛的解决方案。在</li>
<li>根据环境(系统上的实际环境变量、全局状态或其他内容)修改函数以执行不同的操作。这是最简单的方法,但也是最粗糙和最脆弱的方法,因此您必须确保在调试完成后将其更改回原处。在</li>
<li>修改您的函数以接受一个函数本身作为参数,并在正常操作中将<code>datetime.datetime.now</code>作为该函数传入,但是传入一些不同的(例如<a href="https://github.com/alex/pretend" rel="nofollow">stub</a>)进行测试。在</li>
</ul>