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
的前缀和后缀都是双下划线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。“哪里”是什么意思?!