If you allocate external resources in a {@link org.junit.Before} method you need to release them
after the test runs. Annotating a <code>public void</code> method
with <code>@After</code> causes that method to be run after the {@link org.junit.Test} method. All <code>@After</code>
methods are guaranteed to run even if a {@link org.junit.Before} or {@link org.junit.Test} method throws an
exception. The <code>@After</code> methods declared in superclasses will be run after those of the current
class, unless they are overridden in the current class.
<p>
Here is a simple example:
<pre>
public class Example {
File output;
@Before public void createOutputFile() {
output= new File(...);
}
@Test public void something() {
...
}
@After public void deleteOutputFile() {
output.delete();
}
}
</pre>
If you allocate external resources in a {@link org.junit.Before} method you need to release them after the test runs. Annotating a <code>public void</code> method with <code>@After</code> causes that method to be run after the {@link org.junit.Test} method. All <code>@After</code> methods are guaranteed to run even if a {@link org.junit.Before} or {@link org.junit.Test} method throws an exception. The <code>@After</code> methods declared in superclasses will be run after those of the current class, unless they are overridden in the current class. <p> Here is a simple example: <pre> public class Example { File output; @Before public void createOutputFile() { output= new File(...); } @Test public void something() { ... } @After public void deleteOutputFile() { output.delete(); } } </pre>