擅长:python、mysql、java
<p>我认为这是因为断言只接受一个可调用的。它评估可调用函数是否引发异常,而不是语句本身是否引发异常。</p>
<pre><code>self.assertRaises(AttributeError, getattr, branch[0], "childrennodes")
</code></pre>
<p>应该有用。</p>
<p>编辑:</p>
<p>正如THC4k正确地说,它在收集时收集语句,然后会出错,而不是在测试时。</p>
<p>这也是我喜欢nose的一个原因,它有一个decorator(raises),对于这类测试来说非常有用和清晰。</p>
<pre><code>@raises(AttributeError)
def test_1(self)
branch[0].childrennodes
</code></pre>