001 package junit.extensions;
002
003 import junit.framework.Protectable;
004 import junit.framework.Test;
005 import junit.framework.TestResult;
006
007 /**
008 * A Decorator to set up and tear down additional fixture state. Subclass
009 * TestSetup and insert it into your tests when you want to set up additional
010 * state once before the tests are run.
011 */
012 public class TestSetup extends TestDecorator {
013
014 public TestSetup(Test test) {
015 super(test);
016 }
017
018 @Override
019 public void run(final TestResult result) {
020 Protectable p = new Protectable() {
021 public void protect() throws Exception {
022 setUp();
023 basicRun(result);
024 tearDown();
025 }
026 };
027 result.runProtected(this, p);
028 }
029
030 /**
031 * Sets up the fixture. Override to set up additional fixture state.
032 */
033 protected void setUp() throws Exception {
034 }
035
036 /**
037 * Tears down the fixture. Override to tear down the additional fixture
038 * state.
039 */
040 protected void tearDown() throws Exception {
041 }
042 }