如何在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)

或将适当的参数传递给构造函数。,