Fal*_*rri 7 python unit-testing
我可以在python的测试类中调用测试方法吗?例如:
class Test(unittest.TestCase):
def setUp(self):
#do stuff
def test1(self):
self.test2()
def test2(self):
#do stuff
更新:我忘记了问题的另一半.只有在测试人员调用的方法之后才会调用setup或teardown吗?或者它会在test1进入和从test1调用test2之后调用吗?
这几乎不是那样做的.如果希望以特定顺序运行测试,请定义runTest
方法,不要为方法命名test...
.
class Test_Some_Condition( unittest.TestCase ):
def setUp( self ):
...
def runTest( self ):
step1()
step2()
step3()
def tearDown( self ):
...
Run Code Online (Sandbox Code Playgroud)
这将使用一(1)个setUp和一(1)个tearDown按顺序运行这些步骤.没有神秘感.
尝试运行以下代码:
import unittest
class Test(unittest.TestCase):
def setUp(self):
print 'Setting Up'
def test1(self):
print 'In test1'
self.test2()
def test2(self):
print 'In test2'
def tearDown(self):
print 'Tearing Down'
if __name__ == '__main__':
unittest.main()
Run Code Online (Sandbox Code Playgroud)
结果是:
Setting Up
In test1
In test2
Tearing Down
.Setting Up
In test2
Tearing Down
.
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK
Run Code Online (Sandbox Code Playgroud)
现在你看,setUp
被调用之前的测试方法被调用的单元测试,以及tearDown
在呼叫后调用.