| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> |
| <head> |
| <meta name="copyright" content= |
| "Copyright (c) IBM Corporation and others 2000, 2011. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." /> |
| <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type= |
| "text/css" /> |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| <meta http-equiv="Content-Style-Type" content="text/css" /> |
| <title> |
| Writing and running JUnit tests |
| </title> |
| </head> |
| |
| <body> |
| <h1> |
| Writing and running JUnit tests |
| </h1> |
| <p> |
| In this section, you will be using the <a href="http://www.junit.org" |
| target="_blank">JUnit</a> testing framework to write and run tests. To |
| get started with JUnit you can refer to the <a href= |
| "http://junit.sourceforge.net/doc/cookbook/cookbook.htm" target= |
| "_blank">JUnit Cookbook</a>. |
| </p> |
| |
| <h2> |
| Writing Tests |
| </h2> |
| <p> |
| Create a project "JUnitTest". Now you can write your first test. You |
| implement the test in a subclass of <strong>TestCase</strong>. You can do |
| so either using the standard Class wizard or the specialized <strong>Test |
| Case</strong> wizard: |
| </p> |
| <ol> |
| |
| <li>Open the New wizard (<strong>File > New > JUnit Test |
| Case</strong>). |
| </li> |
| <li>Select <strong>New JUnit 3 test</strong> and enter |
| "<i>TestFailure"</i> as the name of your test class: |
| <p> |
| |
| <img src="images/wiz_new_testcase.png" alt= |
| "TestCase creation wizard page 1" /><br /> |
| </p> |
| <p> |
| <em>Note:</em> If you want to use JUnit 4 tests you have to make sure |
| that your compiler compliance is set to 1.5. |
| </p> |
| </li> |
| <li>You will see a warning message asking you to add the junit library to |
| the build path. Use the <strong>Click here</strong> link to add the junit |
| library automatically. |
| </li> |
| |
| <li>Click <strong>Finish</strong> to create the test class. |
| </li> |
| </ol> |
| <p> |
| Add a test method that fails to the class <i>TestFailure</i>. A quick way |
| to enter a test method is with the <i>test</i> template. To do so, place |
| the cursor inside the class declaration. Type "test" followed by |
| <kbd>Ctrl+Space</kbd> to activate code assist and select the "test" |
| template. Change the name of the created method to <i>testFailure</i> and |
| invoke the <i>fail()</i> method. |
| </p> |
| |
| <p> |
| <code>public void testFailure() throws Exception {<br /> |
| fail();<br /> |
| }</code> |
| </p> |
| <p> |
| Now you are ready to run your first test. |
| </p> |
| |
| <h2> |
| Running Tests |
| </h2> |
| <p> |
| To run TestFailure hit the run button in the toolbar. It will |
| automatically run as JUnit Test. You can inspect the test results in the |
| <i>JUnit</i> view. This view shows you the test run progress and status: |
| </p> |
| <p> |
| <img src="images/view_junit_red.png" alt="Failed test" /> |
| |
| </p> |
| <p> |
| The view is shown in the current perspective whenever you start a test |
| run. A convenient arrangement for the JUnit view is to dock it as a fast |
| view. The JUnit view has two tabs: one shows you a list of failures and |
| the other shows you the full test suite as a tree. You can navigate from |
| a failure to the corresponding source by double clicking the |
| corresponding line in the failure trace. |
| </p> |
| <p> |
| Dock the JUnit view as a fast view, remove the <i>fail()</i> statement in |
| the method <i>testFailure()</i> so that the test passes and rerun the |
| test again. You can rerun a test either by clicking the <b>Rerun</b> |
| |
| button in the view's tool bar or you can re-run the program that was last |
| launched by activating the <b>Run</b> drop down. This time the test |
| should succeed. Because the test was successful, the JUnit view doesn't |
| pop up, but the success indicator shows on the JUnit view icon and the |
| status line shows the test result. As a reminder to rerun your tests the |
| view icon is decorated by a "*" whenever you change the workspace |
| contents after the run. |
| </p> |
| <blockquote> |
| <p> |
| <img src="images/icon_junit_successfull.png" border="0" alt= |
| "Successful test" /> - A successful test run<br /> |
| <img src="images/icon_junit_successfull_workspace_modifed.png" border= |
| "0" alt="Successful test but workspace has changed" /> - A successful |
| test run, but the workspace contents have changed since the last test |
| run. |
| </p> |
| |
| </blockquote> |
| <p> |
| In addition to running a test case as described above you can also: |
| </p> |
| <ul> |
| <li>Run all tests inside a project, source folder, or package - |
| <br /> |
| Select a project, package or source folder and run all the included |
| tests with <strong>Run as > JUnit Test</strong>. This command finds |
| all tests inside a project, source folder or package and executes them. |
| </li> |
| |
| <li>Run a single test method -<br /> |
| Select a test method in the Outline or Package Explorer and with |
| <strong>Run as > JUnit Test</strong> the selected test method will |
| be run. |
| </li> |
| <li>Rerun a single test -<br /> |
| Select a test in the JUnit view and execute <b>Run</b> from the context |
| menu. |
| </li> |
| |
| </ul> |
| <h2> |
| Customizing a Test Configuration |
| </h2> |
| <p> |
| When you want to pass parameters or customize the settings for a test run |
| you open the Launch Configuration Dialog. Select <strong>Open Run |
| Dialog...</strong>.in the <strong>Run</strong> drop-down menu in the |
| toolbar: |
| </p> |
| |
| <p> |
| <img src="images/run_dialog_junit.png" alt= |
| "JUnit Launch Configuration" /> |
| </p> |
| <p> |
| In this dialog you can specify the test to be run, its arguments, its |
| run-time class path, and the Java run-time environment. |
| </p> |
| <h2> |
| Debugging a Test Failure |
| </h2> |
| <p> |
| |
| In the case of a test failure you can follow these steps to debug it: |
| </p> |
| <ol> |
| <li>Double click the failure entry from the Failures tab in the JUnit |
| view to open the corresponding file in the editor. |
| </li> |
| <li>Set a breakpoint at the beginning of the test method. |
| </li> |
| <li>Select the test case and execute <b>Debug As>JUnit Test</b> |
| |
| from the <b>Debug</b> drop down. |
| </li> |
| </ol> |
| <p> |
| A JUnit launch configuration has a "keep alive" option. If your Java |
| virtual machine supports "hot code replacement" you can fix the code and |
| rerun the test without restarting the full test run. To enable this |
| option select the <strong>Keep JUnit running after a test run when |
| debugging</strong> checkbox in the JUnit launch configuration. |
| </p> |
| <h2> |
| |
| Creating a Test Suite |
| </h2> |
| <p> |
| The JUnit <b>TestSuite</b> wizard helps you with the creation of a test |
| suite. You can select the set of classes that should belong to a suite. |
| </p> |
| <ol> |
| <li>Open the New wizard |
| </li> |
| <li>Select <strong>Java > JUnit > JUnit Test Suite</strong> and |
| click <strong>Next</strong>. |
| </li> |
| |
| <li>Enter a name for your test suite class (the convention is to use |
| "AllTests" which appears by default).<br /> |
| <p> |
| <img src="images/wiz_new_suite.png" alt="Test Suite wizard" /> |
| </p> |
| </li> |
| <li>Select the classes that should be included in the suite. We currently |
| have a single test class only, but you can add to the suite later. |
| </li> |
| </ol> |
| <p> |
| |
| You can add or remove test classes from the test suite in two ways: |
| </p> |
| <ul> |
| <li>Manually by editing the test suite file |
| </li> |
| <li>By re-running the wizard and selecting the new set of test classes. |
| </li> |
| </ul> |
| <p> |
| Note: the wizard puts 2 markers, <code>//$JUnit-BEGIN$</code> and |
| <code>//$JUnit-END$</code>, into the created Test suite class, which |
| allows the wizard to update existing test suite classes. Editing code |
| between the markers is not recommended. |
| </p> |
| |
| <p class="nav_footer" id="nav_footer"> |
| Next Section: <a href="qs-ProjectConfiguration.htm">Project configuration |
| tutorial</a> |
| </p> |
| </body> |
| </html> |