代码之家  ›  专栏  ›  技术社区  ›  Falmarri

python单元测试方法

  •  7
  • Falmarri  · 技术社区  · 14 年前

    
    class Test(unittest.TestCase):
        def setUp(self):
            #do stuff
    
        def test1(self):
            self.test2()
    
        def test2(self):
            #do stuff
    
    

    更新:我忘了问题的另一半。setup或teardown是否仅在测试人员调用的方法之后调用?或者在进入test1和从test1调用test2之间调用它?

    5 回复  |  直到 14 年前
        1
  •  6
  •   satoru    14 年前

    尝试运行以下代码:

    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()
    

    结果是:

    Setting Up
    In test1
    In test2
    Tearing Down
    .Setting Up
    In test2
    Tearing Down
    .
    ----------------------------------------------------------------------
    Ran 2 tests in 0.000s
    
    OK
    

    setUp 在调用测试方法之前调用 ,和 tearDown

        2
  •  8
  •   S.Lott    14 年前

    这几乎是一个 别那么做 runTest 方法,不要命名方法 test... .

    class Test_Some_Condition( unittest.TestCase ):
    def setUp( self ):
        ...
    def runTest( self ):
        step1()
        step2()
        step3()
    def tearDown( self ):
        ...
    

    这将按照一(1)次设置和一(1)次拆卸的顺序运行步骤。不神秘。

        3
  •  1
  •   unutbu    14 年前

    名称以字符串开头的所有方法 'test' unittest.main() ). 因此可以从 Test '测试'

        4
  •  0
  •   nosklo    14 年前

        5
  •  0
  •   Tim McNamara    14 年前

    两个都是:

    • setUp 将在每次测试之间调用
    • test2

    test