单元测试错误:“setUpClass错误:NameError:未定义全局名称”“doSomething()”“”

2024-04-20 02:41:18 发布

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

我正在尝试在每次测试之前执行doSomething()。我只想执行doSomething()一次。但是,我将收到下一条错误消息:“setUpClass错误:NameError:全局名称'doSomething'未定义”

我在stackoverflow中看到了几个setUpClass的实现示例,我的代码与这些示例完全相同。我一直在试图改变我的代码中的很多东西,使其工作没有运气,我觉得我有点迷失在这里。你知道吗

有人能帮我吗?我错过什么了吗?你知道吗

这是我的密码:

class Test_A(unittest.TestCase):
   def doSomething(self):
        print("class A")

   @classmethod
   def setUpClass(cls):
        doSomething()

   def test_1(self):
        print("test 1")

   def test_2(self):
        print("test 2")

我正在使用python 2.7


Tags: 代码testself名称消息示例def错误
1条回答
网友
1楼 · 发布于 2024-04-20 02:41:18

遵循Martijn的建议:

class Test_A(unittest.TestCase):
   @classmethod
   def doSomething(self):
        print("class A")

   @classmethod
   def setUpClass(cls):
        cls.doSomething()

Test_A.setUpClass()

输出:

class A

cls是调用的隐式第一个参数。正如self是调用实例方法的对象的约定一样,cls用于调用类方法的类。你知道吗

这是惯例,不是语言要求。您可以自由地使用任何有效的标识符:self表示所有内容,或caller,甚至xyzzyplugh。这个约定只是让其他人更容易识别调用对象。你知道吗

相关问题 更多 >