110 likes | 284 Views
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
E N D
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
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. • 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 intmyfun (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 ); } @Test public void test2() { //fail("Not yet implemented"); aprogram a = new aprogram(); aprogram b = new aprogram(); 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