为什么要在中断言函数unittest.TestCase测试用例必须是会员吗?

2024-04-19 12:55:01 发布

您现在位置:Python中文网/ 问答频道 /正文

unittest.TestCase中的断言函数是成员函数。这意味着必须通过以下方式称呼他们:

self.assertTrue(2 + 2 == 5)

而不是像这样:

unittest.assertTrue(2 + 2 == 5)

当我想在另一个函数中使用这些断言函数时,我发现有点不方便,例如:

import unittest

def outside_test(test):
    test.assertTrue(2 + 2 == 5)

class T(unittest.TestCase):
    def test_something(self):
        outside_test(self)

t = T() 
t.test_something()

我必须将self传递到outside_test()才能使用assertTrue()。你知道吗

有什么理由让这些断言函数成为unittest.TestCase的成员函数吗?你知道吗


Tags: 函数testimportselfdef方式成员断言
1条回答
网友
1楼 · 发布于 2024-04-19 12:55:01

这只是因为他们在复制JUnit,JUnit使用实例方法进行断言。这也是为什么所有东西都是用camelCase命名的,而不是用under\u分数命名的。你知道吗

在Python中使用实例方法没有明显的优势;模块级函数可能是更方便的接口,other Python testing frameworks使用assert语句。在Java中,尤其是在import static之前,实例方法是最方便的。你知道吗

相关问题 更多 >