Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的单元测试_Python_Unit Testing - Fatal编程技术网

Python中的单元测试

Python中的单元测试,python,unit-testing,Python,Unit Testing,以下节目: import unittest class my_class(unittest.TestCase): def setUp(self): print "In Setup" self.x=100 self.y=200 def test_case1(self): print "-------------" print "test case1" print self.x

以下节目:

import unittest

class my_class(unittest.TestCase):


  def setUp(self):
        print "In Setup"
        self.x=100
        self.y=200

    def test_case1(self):
        print "-------------"
        print "test case1"
        print self.x
        print "-------------"
    def test_case2(self):
        print "-------------"
        print "test case2"
        print self.y
        print "-------------"
    def tearDown(self):
        print "In Tear Down"
        print "      "
        print "      "

if __name__ == "__main__":
    unittest.main()
给出输出:

>>> ================================ RESTART ================================
>>> 
In Setup
-------------
test case1
100
-------------
In Tear Down

.In Setup
-------------
test case2
200
-------------
In Tear Down
      .
----------------------------------------------------------------------
Ran 2 tests in 0.113s

OK
>>> 
>>> 
问题:

  • 什么意思:
    如果

  • 为什么
    name
    main
    的前缀和后缀都是双下划线

  • 将在何处创建my_类的对象

  • if\uuuuu name\uuuu=“\uuuuu main\uuuuuu”:
    位允许将代码作为模块导入,而无需调用
    unittest.main()
    代码-只有将此代码作为程序的主入口点调用时(即,如果您的程序位于
    program.py
    中,则像
    python program.py
    那样调用它),才会运行此代码

    双下划线的前缀和后缀表示:

    \uuuuu双\u前导\u和尾随\u下划线\uuuuu
    :存在于用户控制的名称空间中的“神奇”对象或属性。例如,
    \uuuuuu init\uuuuuu
    \uuuu导入\uuuuuuu
    \uuuu文件\uuuuu
    。永远不要捏造这样的名字;仅按文件规定使用

    这来自于-这是一个非常有用的资源来阅读和内化


    最后,您的
    my_类将在运行时在unittest框架内实例化,因为它继承自
    unittest.TestCase

    请参见问题1。一次问一个问题。2.根据,前导和尾随双下划线用于指示用户控制的名称空间中的“神奇”对象或属性。这可以防止它们与用户名冲突(例如,您可以调用函数
    main
    ,或变量
    name
    )。见例3。“哪里”是什么意思?!