JUnit - Overview

What is Testing :-

"Testing is the process of checking the functionality of an application to ensure it runs as per requirements ". 

Unit testing comes into picture at the developers’ level; it is the testing of single entity (i.e a class or method). It helps a software company to deliver the quality products to its customers.

Unit testing can be done in two ways − manual testing and automated testing.

Manual Testing :-

"Executing a test cases manually without any tool support is known as manual testing".

It is -

  • Time-consuming and tedious − Since test cases are executed by human resources, it is very slow and tedious.
  • Huge investment in human resources − As test cases need to be executed manually, more testers are required in manual testing.
  • Less reliable − Manual testing is less reliable, as it has to account for human errors.
  • Non-programmable − No programming can be done to write sophisticated tests to fetch hidden information.

Automated Testing :-

"Taking tool support and executing the test cases by using an automation tool is known as automation testing".

It is -
  • Fast − Automation runs test cases significantly faster than human resources.
  • Less investment in human resources − Test cases are executed using automation tools, so less number of testers are required in automation testing.
  • More reliable − Automation tests are precise and reliable.
  • Programmable − Testers can program sophisticated tests to bring out hidden information.

What is JUnit ?

JUnit is a unit testing framework for Java programming language

It plays a crucial role in test-driven development i.e.  the idea of "first testing then coding", which emphasizes on setting up the test data for a piece of code that can be tested first and then implemented.

This approach is like "test a little, code a little, test a little, code a little." It increases the productivity of the programmer and the stability of program code, which in turn reduces the stress on the programmer and the time spent on debugging.

Features of JUnit :-

  • JUnit is an open source framework, which is used for writing and running tests.
  • Provides annotations to identify test methods.
  • Provides assertions for testing expected results.
  • Provides test runners for running tests.
  • JUnit tests allow you to write codes faster, which increases quality.
  • JUnit is elegantly simple. It is less complex and takes less time.
  • JUnit tests can be run automatically and they check their own results and provide immediate feedback. There's no need to manually go through a report of test results.
  • JUnit tests can be organized into test suites containing test cases and even other test suites.
  • JUnit shows test progress in a bar that is green if the test is running smoothly, and it turns red when a test fails.

What is a Unit Test Case ?

"A Unit Test Case is a part of code, which ensures that another part of code (i.e. a method of a class) works as expected". 

To achieve the desired results quickly, a test framework is required. JUnit is a perfect unit test framework for Java programming language.

A formal written unit test case is characterized by, a known input and an expected output, which is worked out before the test is executed. 

The known input should test a precondition and the expected output should test a post-condition.

There must be at least two unit test cases for each requirement − one positive test and one negative test

If a requirement has sub-requirements, each sub-requirement must have at least two test cases as positive and negative.