擅长:python、mysql、java
<p>您需要对<code>is_valid()</code>函数本身进行单元测试。然后,您只需测试在传递无效输入时,<code>.run()</code>会引发<code>ValueError</code>异常:</p>
<pre><code>with self.assertRaises(ValueError):
objectundertest.run(invalid_parameter)
</code></pre>
<p>由于您已经为<code>is_valid()</code>本身准备了一个unittest,因此<code>.run()</code>的unittests不需要关注它的功能。您可以专注于<code>.run()</code>特有的功能。在</p>
<p>在您的例子中,<code>BaseAction</code>是一个为子类提供服务的单元;我将其作为模拟子类进行测试:</p>
^{pr2}$
<p>因此您可以检查<code>run</code>是否确实使用预期的<code>param</code>值调用了<code>do_run</code>。在</p>