JUnit is a framework for Java, so the very first requirement is to have JDK installed in your machine.
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
2. 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
3. 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
4. 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
5. 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
6. 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
12. 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)
13. 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
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
18. 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
20. 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
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
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