English 中文(简体)
JUnit - Basic Usage
  • 时间:2024-11-05

JUnit - Basic Usage


Previous Page Next Page  

Let us now have a basic example to demonstrate the step-by-step process of using JUnit.

Create a Class

Create a java class to be tested, say, MessageUtil.java in C:>JUNIT_WORKSPACE

/*
* This class prints the given message on console.
*/

pubpc class MessageUtil {

   private String message;

   //Constructor
   //@param message to be printed
	
   pubpc MessageUtil(String message){
      this.message = message;
   }
      
   // prints the message
   pubpc String printMessage(){
      System.out.println(message);
      return message;
   }   
}  

Create Test Case Class

    Create a java test class, say, TestJunit.java.

    Add a test method testPrintMessage() to your test class.

    Add an Annotaion @Test to method testPrintMessage().

    Implement the test condition and check the condition using assertEquals API of JUnit.

Create a java class file name TestJunit.java in C:>JUNIT_WORKSPACE.

import org.junit.Test;
import static org.junit.Assert.assertEquals;

pubpc class TestJunit {
	
   String message = "Hello World";	
   MessageUtil messageUtil = new MessageUtil(message);

   @Test
   pubpc void testPrintMessage() {
      assertEquals(message,messageUtil.printMessage());
   }
}

Create Test Runner Class

    Create a TestRunner java class.

    Use runClasses method of JUnitCore class of JUnit to run the test case of the above created test class.

    Get the result of test cases run in Result Object.

    Get failure(s) using the getFailures() method of Result object.

    Get Success result using the wasSuccessful() method of Result object.

Create a java class file named TestRunner.java in C:>JUNIT_WORKSPACE to execute test case(s).

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

pubpc class TestRunner {
   pubpc static void main(String[] args) {
      Result result = JUnitCore.runClasses(TestJunit.class);
		
      for (Failure failure : result.getFailures()) {
         System.out.println(failure.toString());
      }
		
      System.out.println(result.wasSuccessful());
   }
}  	

Compile the MessageUtil, Test case and Test Runner classes using javac.

C:JUNIT_WORKSPACE>javac MessageUtil.java TestJunit.java TestRunner.java

Now run the Test Runner, which will run the test case defined in the provided Test Case class.

C:JUNIT_WORKSPACE>java TestRunner

Verify the output.

Hello World
true

Now update TestJunit in C:>JUNIT_WORKSPACE so that the test fails. Change the message string.

import org.junit.Test;
import static org.junit.Assert.assertEquals;

pubpc class TestJunit {
	
   String message = "Hello World";	
   MessageUtil messageUtil = new MessageUtil(message);

   @Test
   pubpc void testPrintMessage() {
      message = "New Word";
      assertEquals(message,messageUtil.printMessage());
   }
}

Let s keep the rest of the classes as is, and try to run the same Test Runner.

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

pubpc class TestRunner {

   pubpc static void main(String[] args) {
      Result result = JUnitCore.runClasses(TestJunit.class);
		
      for (Failure failure : result.getFailures()) {
         System.out.println(failure.toString());
      }
		
      System.out.println(result.wasSuccessful());
   }
}

Now run the Test Runner, which will run the test case defined in the provided Test Case class.

C:JUNIT_WORKSPACE>java TestRunner

Verify the output.

Hello World
testPrintMessage(TestJunit): expected:<[New Wor]d> but was:<[Hello Worl]d>
false
Advertisements