Python中unittest调用姿势不对?
怎么会提示给类的实例 __init__ 传递了 2 个参数?why 啊?
import unittest
class Test(unittest.TestCase):
def init(self):
self.a = 1
def test1(self):
self.assertEqual(self.a, 1)
if name == ‘main’:
unittest.main()
output:
....省略没用的
TypeError: __init__() takes 1 positional argument but 2 were given
[Finished in 0.2s with exit code 1]
Python中unittest调用姿势不对?
10 回复
这个你得看 长辈的 init 怎么写的
另外 你这个需求 用 setUp?
我无法理解你的问题。
长辈的 init 怎么写的 ===这句话怎么理解
用 setUp 不要用__init__
不能用__init__还是咋地啊?
这种框架测试类的生命周期管理是框架自身来做的,就按文档说的来吧
就是长辈的 init 你看看 mro 呗
用 setUp/tearDown,对你这个例子而言,如果非要写__init__,可以这样:
def init(self, *args, **kwargs):
super().init(*args, **kwargs)
self.a = 1
python 继承要考虑父类__init__的实现,必要时需要显式调用
弃用 init 了

