1 / 15

Unit Testing with JUnit

Unit Testing with JUnit. Dan Fleck Spring 2010. What is Unit Testing?. A procedure to validate individual units of Source Code Example: A procedure, method or class Validating each individual piece reduces errors when integrating the pieces together later. Automated Unit Tests with JUnit.

hanley
Download Presentation

Unit Testing with JUnit

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Unit Testing with JUnit Dan Fleck Spring 2010

  2. What is Unit Testing? • A procedure to validate individual units of Source Code • Example: A procedure, method or class • Validating each individual piece reduces errors when integrating the pieces together later

  3. Automated Unit Tests with JUnit • Junit is a unit testing framework for Java • Allows you to write unit tests in Java using a simple interface • Automated testing enables running and rerunning tests very easily and quickly

  4. An example unit test @Test public void testCellChangePropagates() { Spreadsheet sheet = new Spreadsheet(); sheet.put("A1", "5"); sheet.put("A2", "=A1"); sheet.put("A1", "10"); assertEquals("10",sheet.get("A2")); }

  5. Junit Assert • During a test use Asserts to specify if the test passed or failed • org.junit.Assert – allows you to test if certain ideas hold by asserting results: http://junit.sourceforge.net/javadoc/ • assertEquals(expected, actual) • assertEquals(message, expected, actual) • assertEquals(expected, actual, delta) • assertEquals(message, expected, actual, delta) • assertFalse(condition) • assertFalse(message, condition) • Assert(Not)Null(object) • Assert(Not)Null(message, object) • Assert(Not)Same(expected, actual) • Assert(Not)Same(message, expected, actual) • assertTrue(condition) • assertTrue(message, condition)

  6. Junit Methods – Java annotations • @BeforeClass // Run before all tests in class • public static void setUpClass() throws Exception {} • @AfterClass // Run after all tests in class • public static void tearDownClass() throws Exception {} • @Before // Run before each test in class • public void setUp() {} • @After // Run after each test in class • public void tearDown() {} • @Test • public void testMain() { • http://www.cavdar.net/2008/07/21/junit-4-in-60-seconds/

  7. Junit with Netbeans Note: If this option doesn’t exist use New File->Other->Junit->Test for existing class • New File • Choose file type: Junit • Choose Test for Existing Class • Junit test with all stubs created for that class • Fill in the individual tests • Run Tests (Netbeans options)

  8. Junit Documentation/Tutorials • http://junit.sourceforge.net/ • http://code.google.com/p/t2framework/wiki/JUnitQuickTutorial • http://junit.sourceforge.net/doc/testinfected/testing.htm (older)

  9. Lines of code coverage analysis • Determining which lines of code your tests have exercised and which they have not • Allows you to detect if your unit tests (or system tests) are adequately covering all possibilities or not • This is just one way to test

  10. Lines of code coverage analysis with Netbeans • Install Unit Test Code Coverage Viewer module • (See next slide for instructions) • Write a Unit Test • Run test and view highlighted code

  11. Installing the Code Coverage Plugin • Go into Netbeans -> Tools -> PluginsSearch for "Code Coverage" and install it. • If you don't see it in the list of available plugins, go to the "Settings" tab and check "Netbeans Beta”, reload the catalog, and then try again. • If you don't see Netbeans Beta in the list on Settings, add the following source for plugins:Netbeans Betahttp://updates.netbeans.org/netbeans/updates/6.8/uc/final/beta/catalog.xml.gz

  12. How do you you combine coverage with traditional system test scripts? Traditional system testing uses scripts • 1. Enter salary • 2. Enter number of dependents • 3. Click “Calculate Taxes” button • … To combine this with coverage, launch the GUI while capturing coverage statistics Run the test case to determine coverage

  13. How to write test cases • See sample system test case • http://www.cs.gmu.edu/~kdobolyi/cs421/SAMPLESystemTestCase.doc • See sample unit test case • http://www.cs.gmu.edu/~kdobolyi/cs421/Main.java • http://www.cs.gmu.edu/~kdobolyi/cs421/Triangle.java • http://www.cs.gmu.edu/~kdobolyi/cs421/Triangle.java

  14. Summary • Unit tests can help test the details of your program • Automated unit tests provide constant visibility and easy retesting • Test coverage supplies valuable information when running both unit tests and system tests

More Related