w3resource

Java JUnit Test Case: Test Setup and Teardown

Java Unit Test: Exercise-3 with Solution

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:

Flowchart: Java JUnit Test Case:  Test Setup and Teardown
Flowchart: Java JUnit Test Case:  Test Setup and Teardown

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.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://www.w3resource.com/java-exercises/unittest/java-unittest-exercise-3.php