Credit to Eclipse Documentation JUNIT in Eclipse Pepper Credit to Eclipse Documentation http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2FgettingStarted%2Fqs-junit.htm
Purpose Create test case classes to test individual classes or small groups Easy to hook test classes to the classes being tested Test building tools inside Junit class Easy to rerun one set of tests or all tests in the entire system. Easy to supress tests in production
Startup Create a project if you do not have one (file -> New -> Project) Create a folder for your test cases (optional) Create a test case for a class you intend to write (file -> new -> Junit Test Case) Choose the type (new junit4 test) and name your test class You can indicate the name of the class being tested, but only after it is created
Test Case Creation Screen
How to Create a Test Method Type @Test to override the test method Type test method header -> public void test2() Code the test to just invoke the fail method public void testFailure() throws Exception { fail(); }
Running a test method Hit the run button. Junit Test runs Or Run as -> Junit test on project or class Junit Test runs See results in JUnitView Failure tab Tab for all tests as a tree * = changed code after running test
Test Result Checking http://www.vogella.com/tutorials/JUnit/article.html assertEquals() : object comparison using equals method assertTrue() / assertFalse() : compare to boolean value assertNull() / assertNotNull() : is the variable null assertSame() / assertNotSame(): reference same object address assertThat - uses matcher
Let's Try Write a simple class to be tested: package testProject; public class aprogram { int x = 1; public int myfun (int y) { x = x + 1; return x; }
Now code a few tests package JUnitTest; import static org.junit.Assert.*; import org.junit.Test; import testProject.aprogram; public class TestFailure { @Test public void test1() { aprogram a = new aprogram(); aprogram b = new aprogram(); assertTrue( b.myfun(3) == 2 ); assertTrue( a.myfun(3) == 3 ); } public void test2() { //fail("Not yet implemented"); assertTrue( b.myfun(3) == 4 ); //assertTrue( a.myfun(3) == 1 );
Run the Tests See how it points to problem test See how one failure in a test class stops the running of the next one Make both succeed Make both fail
Create a Test Suite File -> New -> Java -> Junit -> Junit Test Suite Name the suite (AllTests) Select test classes to run