我没有写" Django"在问题中我不认为它是相关的。我有一个像这样开始的Django测试:
class APITests(APITestCase):
def __init__(self):
self.token = ""
self.fixtures = ['tests/testdata.json']
super(APITests, self).__init__()
它没有用,它给了我错误:
TypeError: __init__() takes exactly 1 argument (2 given)
有人可以解释我为什么吗?我怎么解决这个问题?
答案 0 :(得分:2)
我认为你不应该为__init__
覆盖APITestCase
。我认为它们提供了可以覆盖的特殊setup
和teardown
方法。
但是如果你真的必须覆盖它,请确保你接受测试框架传递的所有参数:
class APITests(APITestCase):
def __init__(self, *args, **kwargs):
self.token = ""
self.fixtures = ['tests/testdata.json']
super(APITests, self).__init__(*args, **kwargs)
或将它们定义为类属性:
class APITests(APITestCase):
tokens = ""
fixtures = ('tests/testdata.json')
...