Ravi Kant Soni
Senior Software Engineer
i-Admin , Bangalore
i-Admin,Bangalore
1
WHAT IS TESTING
Testing is the process of checking the
functionality of the application whether it
is working as per requirements
2
i-Admin,Bangalore
WHAT IS JUNIT
DeFacto framework for developing unit
test in java
 Currently version 4.x
Developed by Erich Gamma & Kent Beck
Released under IBM, and hosted on
sourcefog
Promotes the idea of "first testing then
coding“ 3
i-Admin,Bangalore
FEATURES OF JUNIT
An open source framework which is used
for writing & running tests
Shows test progress in a bar that is green
if test is going fine and it turns red when a
test fails
Provides Annotation & Assertions
4
i-Admin,Bangalore
WHAT IS UNIT TEST CASES?
Unit testing is the testing of single entity
(class or method)
A Unit Test Case is a part of code which
ensures that the another part of code
(method) works as expected
There must be at least two test cases for
each requirement: one positive test and
one negative test 5
i-Admin,Bangalore
JUNIT ENVIRONMENT SETUP
JUnit is a framework for Java, so the very
first requirement is to have JDK installed
in your machine.
Download latest version of JUnit jar file
from http://www.junit.org.
6
i-Admin,Bangalore
SET ECLIPSE ENVIRONMENT
7
i-Admin,Bangalore
JUNIT 4
8
i-Admin,Bangalore
Automatically recognizes test methods
preceded by @Test annotation
No need for main() to run the tests
Test methods must be public, void, with
no parameters
EXAMPLE
import org.junit.Test; // for @Test
import static org.junit.Assert.assertEquals; // assertEquals()
public class TestJunit {
@Test
public void testAdd() {
assertEquals(2, 2 + 1);
}
}
9
i-Admin,Bangalore
JUNIT TEST OUTPUT
10
i-Admin,Bangalore
JUNIT TEST OUTPUT
11
i-Admin,Bangalore
JUNIT TEST OUTPUT
12
i-Admin,Bangalore
Runs
Total number of tests run
Failures
Tests that failed. For example assertions that
failed.
Errors
Tests that generated unhandled (unexpected)
exceptions.
Time elapsed (ms)
JUNIT CLASSES
JUnit classes are important classes which is
used in writing and testing Junits
Assert which contain a set of assert
methods
TestCase which contain a test case defines
the fixture to run multiple tests
13
i-Admin,Bangalore
ASSERT
org.junit.Assert.* static methods:
 void assertEquals(expected, actual)
 Works with object, int, long, byte, string, etc
 Object: it invokes object.equals(object) for equality
 assertEquals (expected, actual, εpsilon)
 float and double
 void assertFalse/ True(boolean condition)
 void assertNull/ NotNull(Object object)
 void fail() 14
i-Admin,Bangalore
ASSERT EXAMPLE
i-Admin,Bangalore
15
ANNOTATION
Annotations are like meta-tags
 @Test
 @Before
 @After
 @BeforeClass
 @AfterClass
 @Ignore
16
i-Admin,Bangalore
ANNOTATION EXAMPLE
i-Admin,Bangalore
17
PARAMETERIZED TEST
 Allows you to run the same test with different
data
 @RunWith(Parameterized.class)
 public static method that returns a Collection
of data
 Collection must be an Array of the various
parameters used for the test
 public constructor that uses the parameters 18
i-Admin,Bangalore
PARAMETERIZED EXAMPLE
i-Admin,Bangalore
19
SUITES
 Specify an execution order
 Add @Suite to an empty class
@RunWith(Suite.class)
@Suite.SuiteClasses({SomeTest.class})
public class AllTests { }
20
i-Admin,Bangalore
SUITES EXAMPLE
i-Admin,Bangalore
21
TESTING EXCEPTIONS
i-Admin,Bangalore
22
GOOD UNIT TEST
 Any static utility method must have test
 Make exception tests
 Business models with equals and hashcode
 Test that “something is true” but also that
“not-something is false”
 Give your tests meaningful names
23
i-Admin,Bangalore
MORE RESOURCE
 Official site: www.junit.org
 JUnit cook book
http://junit.sourceforge.net/doc/cookbook
/cookbook.htm (one recipe long!)
 JUnit Javadoc:
http://junit.org/junit/javadoc/4.5/
24
i-Admin,Bangalore
i-Admin,Bangalore
25

Junit

  • 1.
    Ravi Kant Soni SeniorSoftware Engineer i-Admin , Bangalore i-Admin,Bangalore 1
  • 2.
    WHAT IS TESTING Testingis the process of checking the functionality of the application whether it is working as per requirements 2 i-Admin,Bangalore
  • 3.
    WHAT IS JUNIT DeFactoframework for developing unit test in java  Currently version 4.x Developed by Erich Gamma & Kent Beck Released under IBM, and hosted on sourcefog Promotes the idea of "first testing then coding“ 3 i-Admin,Bangalore
  • 4.
    FEATURES OF JUNIT Anopen source framework which is used for writing & running tests Shows test progress in a bar that is green if test is going fine and it turns red when a test fails Provides Annotation & Assertions 4 i-Admin,Bangalore
  • 5.
    WHAT IS UNITTEST CASES? Unit testing is the testing of single entity (class or method) A Unit Test Case is a part of code which ensures that the another part of code (method) works as expected There must be at least two test cases for each requirement: one positive test and one negative test 5 i-Admin,Bangalore
  • 6.
    JUNIT ENVIRONMENT SETUP JUnitis a framework for Java, so the very first requirement is to have JDK installed in your machine. Download latest version of JUnit jar file from http://www.junit.org. 6 i-Admin,Bangalore
  • 7.
  • 8.
    JUNIT 4 8 i-Admin,Bangalore Automatically recognizestest methods preceded by @Test annotation No need for main() to run the tests Test methods must be public, void, with no parameters
  • 9.
    EXAMPLE import org.junit.Test; //for @Test import static org.junit.Assert.assertEquals; // assertEquals() public class TestJunit { @Test public void testAdd() { assertEquals(2, 2 + 1); } } 9 i-Admin,Bangalore
  • 10.
  • 11.
  • 12.
    JUNIT TEST OUTPUT 12 i-Admin,Bangalore Runs Totalnumber of tests run Failures Tests that failed. For example assertions that failed. Errors Tests that generated unhandled (unexpected) exceptions. Time elapsed (ms)
  • 13.
    JUNIT CLASSES JUnit classesare important classes which is used in writing and testing Junits Assert which contain a set of assert methods TestCase which contain a test case defines the fixture to run multiple tests 13 i-Admin,Bangalore
  • 14.
    ASSERT org.junit.Assert.* static methods: void assertEquals(expected, actual)  Works with object, int, long, byte, string, etc  Object: it invokes object.equals(object) for equality  assertEquals (expected, actual, εpsilon)  float and double  void assertFalse/ True(boolean condition)  void assertNull/ NotNull(Object object)  void fail() 14 i-Admin,Bangalore
  • 15.
  • 16.
    ANNOTATION Annotations are likemeta-tags  @Test  @Before  @After  @BeforeClass  @AfterClass  @Ignore 16 i-Admin,Bangalore
  • 17.
  • 18.
    PARAMETERIZED TEST  Allowsyou to run the same test with different data  @RunWith(Parameterized.class)  public static method that returns a Collection of data  Collection must be an Array of the various parameters used for the test  public constructor that uses the parameters 18 i-Admin,Bangalore
  • 19.
  • 20.
    SUITES  Specify anexecution order  Add @Suite to an empty class @RunWith(Suite.class) @Suite.SuiteClasses({SomeTest.class}) public class AllTests { } 20 i-Admin,Bangalore
  • 21.
  • 22.
  • 23.
    GOOD UNIT TEST Any static utility method must have test  Make exception tests  Business models with equals and hashcode  Test that “something is true” but also that “not-something is false”  Give your tests meaningful names 23 i-Admin,Bangalore
  • 24.
    MORE RESOURCE  Officialsite: www.junit.org  JUnit cook book http://junit.sourceforge.net/doc/cookbook /cookbook.htm (one recipe long!)  JUnit Javadoc: http://junit.org/junit/javadoc/4.5/ 24 i-Admin,Bangalore
  • 25.