擅长:python、mysql、java
<p>如果测试在来自<code>settings.py</code>和<code>utils.py</code>的单独文件中,则可以创建一个文件<code>mock.py</code></p>
<pre><code>import configobj
class MockConfigObj(object):
#mock whatever you wan
configobj.ConfigObj = MockConfigObj
</code></pre>
<p>然后<code>import mock</code>,然后导入(从)任何本身导入的模块<code>settings</code>。这将确保使用<code>MockConfigObj</code>创建{<cd6>}。如果需要统一的全局模拟,请在导入<code>configobj</code>的任何文件之前导入它。在</p>
<p>这是因为python将<code>configobj</code>存储在<code>sys.modules</code>中,并在实际读取后续导入的文件之前进行检查。在<code>mock.py</code>中,标识符<code>ConfigObj</code>只是对<code>sys.modules</code>中条目的引用,因此您所做的任何更改都将是全局可见的。在</p>
<p>这让我觉得有点老套,但这是我能想到的最好的。在</p>