Java JUnit Test Case: Test Setup and Teardown
Write a Java test case that implements a JUnit test with setup and teardown methods to prepare and clean up resources for multiple test cases.
Sample Solution:
Java Code:
// ExceptionTest.java
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
import static org.junit.Assert.*;
public class SetupTeardownTest {
// Example class with setup and teardown operations
public class ExampleClass {
private String resource;
// Setup method - runs before each test
@Before
public void setUp() {
System.out.println("Setting up resources...");
resource = "Initialized Resource";
}
// Teardown method - runs after each test
@After
public void tearDown() {
System.out.println("Cleaning up resources...");
resource = null;
}
// Method to be tested
public String getResource() {
return resource;
}
}
// JUnit test case with setup and teardown
@Test
public void testResourceInitialization() {
// Arrange
ExampleClass example = new ExampleClass();
// Act
String result = example.getResource();
// Assert
assertEquals("Initialized Resource", result);
}
// JUnit test case with setup and teardown
@Test
public void testResourceCleanup() {
// Arrange
ExampleClass example = new ExampleClass();
// Act
example.getResource(); // Invoke the method to trigger setup and teardown
// Assert
assertNull(example.getResource());
}
// Main function to run JUnit tests
public static void main(String[] args) {
Result result = JUnitCore.runClasses(SetupTeardownTest.class);
// Check if there are any failures
if (result.getFailureCount() > 0) {
System.out.println("Test failed:");
// Print details of failures
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
} else {
System.out.println("All tests passed successfully.");
}
}
}
Sample Output:
testResourceInitialization(SetupTeardownTest): expected:<Initialized Resource> but was:<null>
Explanation:
In the exercise above -
- The "ExampleClass" has @Before and @After annotated methods (setUp and tearDown) for setup and teardown operations.
- The "testResourceInitialization" and "testResourceCleanup" test cases use these setup and teardown methods.
- The main() function runs the JUnit tests using JUnitCore.runClasses(SetupTeardownTest.class).
Flowchart:
Java Code Editor:
Improve this sample solution and post your code through Disqus
Previous: Java Test Case: Exception Testing.
Next: Java Parameterized test with JUnit: MultiplyTest example.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics