如何在unittest中初始化class变量
How to initialise class variable in unittest
我有一个 class,它有一些功能,我正在为 class 中的 delete
函数编写单元测试,但我收到以下错误:
TypeError: __init__() missing 4 required positional arguments: 'self', 'test1', 'test_id', and 'test_buckets'
class TestEntry:
def __init__(self, test1, test_id, test_buckets):
self.test1 = test
self.test_id = test_id
self.test_buckets(buckets)
def delete(self):
if self.test_id in self.test1.entries:
del self.test1.entries[self.test_id]
return valve_of.groupdel(test_id=self.test_id)
class TestValveEntry(unittest.TestCase):
def test_delete(self):
newentry = TestEntry()
addflow = newentry.add()
delete_entry = newentry.delete(addflow)
self.assertEqual(delete_entry, None)
错误清楚地回答了问题。您没有提供初始化 class 所需的参数。
def __init__(self, test1, test_id, test_buckets)
要求test1, test_id, test_buckets
作为参数。但是你打电话
newentry = TestEntry()
没有参数。
要么为您的参数提供默认值,例如
def __init__(self, test1=None, test_id=None, test_buckets=None)
或将适当的参数传递给构造函数。,
我有一个 class,它有一些功能,我正在为 class 中的 delete
函数编写单元测试,但我收到以下错误:
TypeError: __init__() missing 4 required positional arguments: 'self', 'test1', 'test_id', and 'test_buckets'
class TestEntry:
def __init__(self, test1, test_id, test_buckets):
self.test1 = test
self.test_id = test_id
self.test_buckets(buckets)
def delete(self):
if self.test_id in self.test1.entries:
del self.test1.entries[self.test_id]
return valve_of.groupdel(test_id=self.test_id)
class TestValveEntry(unittest.TestCase):
def test_delete(self):
newentry = TestEntry()
addflow = newentry.add()
delete_entry = newentry.delete(addflow)
self.assertEqual(delete_entry, None)
错误清楚地回答了问题。您没有提供初始化 class 所需的参数。
def __init__(self, test1, test_id, test_buckets)
要求test1, test_id, test_buckets
作为参数。但是你打电话
newentry = TestEntry()
没有参数。
要么为您的参数提供默认值,例如
def __init__(self, test1=None, test_id=None, test_buckets=None)
或将适当的参数传递给构造函数。,