xunit test patterns refactoring test code phần 7

Nếu chúng tôi đã rách xuống một Lịch thi đấu chung, chúng tôi sẽ chú thích phương pháp teardown của chúng tôi với các chú thích thích hợp hoặc thuộc tính (ví dụ, @ afterClass hoặc TestFixtureTearDown) hoặc di chuyển nó đến một trang trí cài đặt. | Automated Teardown 08 SimpoRPDFRMerge ancFSplitUnregisterecPVersion - http by all Testcase Classes and would use a generic object destruction mechanism so that it would not have to care what types of objects it was deleting. protected void tearDown throws Exception removeObjects allAirportIds Airport removeObjects allFlights Flight public void removeObjects List objectsToDelete String type Iterator i while try BigDecimal id BigDecimal if Airport type id else id catch Exception e do nothing if the remove failed If we were tearing down a Shared Fixture we would annotate our tearDown method with the suitable annotation or attribute . @afterClass or TestFixtureTearDown or move it to a Setup Decorator. Example Automated Exercise Teardown If we wanted to take the next step and automatically tear down any objects created within the SUT we could modify the SUT to use an observable Object Factory. In our test we would add the following code ResourceTracker tracker public void setUp tracker new ResourceTracker tracker public void tearDown tracker This last example assumes that the Automated Teardown logic has been moved into the cleanup method on the ResourceTracker. Simpo PDF Merge and Split Unregistered Version - http In-line Teardown How do we tear down the Test Fixture We include teardown logic at the end of the Test Method immediately after the result verification. Testcase Class test_method_1 I r test method 2 test_method_n r c tearDown 2 Teardown Teardown Teardown In-line Teardown A large part of making tests repeatable and robust is ensuring that the test fixture is torn down after each test and a new one created for the next test run. This strategy is known as a Fresh Fixture page 311 . Leftover objects and database records as well as open files and connections can at best cause