擅长:python、mysql、java
<p>您还可以使用当前代码创建一个新的TestCase函数:</p>
<pre><code>def assertRaisesErrNo(self, exc, errno, f, *args, **kwargs):
try:
self.assertRaises(exc, f, *args, **kwargs)
except IOError, e:
if e.errno == errno:
pass
else:
raise
unittest.TestCase.assertRaisesErrNo = assertRaisesErrNo
</code></pre>
<p>然后像其他任何<code>assert</code>方法一样使用它:</p>
^{pr2}$
<p>您还可以使用<a href="http://docs.python.org/library/contextlib.html#contextlib.contextmanager" rel="nofollow">contextlib.contextmanager</a>很容易地将其转换为上下文管理器</p>