Setup and Teardown

在RIDE我們可以發現,TestSuite中有Suite SetupSuite TeardownTest SetupTest Teardwon,而TestCase中有SetupTeardown。概念與JUnit相同,Test Suite中的Suite Setup與Suite Teardwon是在Test Suite要開始執行Testcases之前與執行各個Testcases結束後所做的動作;TestCase中的Setup與Teardown是在各個Testcase要開始前與結束後所做的動作。有疑問的是: Test Suite中的Test Setup與Test Teardown對TestCase中的有什麼影響呢?

我寫了一個測試用的testsuite(Download Source Code)叫TestTearDown,包含三個testcases: test1、test2與test3,兩個keywords: log teardown與log teardown2。其中teardown的關係如下:

TestTearDown
          - Test Teardown: log teardown 
    test1
          - Teardown: log teardown 
    test2
          - Teardown: log teardown2
    test3
上面範例的目的,是要讓我們了解以下事情:

  1. Test Suite與Test Case的Test Teardown相同時,是否會執行兩次?
  2. Test Suite與Test Case的Test Teardown不同時,哪一個會被執行?

我們可以從結果發現: Test Suite中的Test Teardown是一個預設值,在Testcase沒設定時才會作用,否則都以testcase本身為準,不會讓Test Suite與Test Case都執行。