擅长:python、mysql、java
<p>你被我们的<a href="https://docs.python.org/fr/3/library/stdtypes.html?highlight=mro#class.mro" rel="nofollow noreferrer">MRO</a>困住了。
虽然Python支持<a href="https://www.i-programmer.info/programming/python/12217-programmers-python-mutliple-inheritance.html?start=1" rel="nofollow noreferrer">Diamond Inheritance</a>,但是当涉及到变量赋值时,您将陷入困境</p>
<p>多亏了<a href="https://www.i-programmer.info/programming/python/12217-programmers-python-mutliple-inheritance.html?start=1" rel="nofollow noreferrer">Diamond Inheritance</a>,我们现在都<code>_get_authenticated_api_client</code>将被调用。当谈到赋值时,<code>_get_authenticated_api_client</code>返回的内容取决于传递类的顺序</p>
<p>在您的例子中,只有6个测试运行,因为您只有一个类,有6个测试函数</p>
<p>您打算使用不同的<code>auth</code>方法运行完全相同的测试。
一个简单的方法是:</p>
<pre class="lang-py prettyprint-override"><code>class ClientMixinCase: #Do not Inherit from "TestCase"
#... Declare you tests here
class ClientWithTokenAuthTestCase(ClientMixinCase,TokenAuthTests):
pass
class ClientWithBasicAuthTestCase(ClientMixinCase,BasicAuthTests):
pass
</code></pre>