Download presentation
Presentation is loading. Please wait.
Published byShauna French Modified over 9 years ago
1
Unit testing Java programs1 Unit testing Java programs Using JUnit 4 “If it isn't tested, it doesn’t work”
2
Testing Larman – a disciplin in UP but very little in practice UPEDU – description Unit testing Java programs2
3
The Unified Software Development Process: Test procedure (V-model) 1.1.1 Test Case 1 Verification of the generation of the billing events through the Customer Care interface StartDelivery Requirement SpecificationAccept Test Program DesignIntegration Test Module Design Module Test Module Coding
4
Unit testing Java programs4 Testing in XP – Module code Test Testing is an important discipline in XP (Extreme Programming) XP idea: Create the test before the code to be tested –Writing the test makes you thing about detailed design Test is an executable requirements –Writing (and running) test will be a positive experience. –We know when a class is done When all tests run
5
Unit testing Java programs5 Requirements for tests Tests must be executable A test must clearly show whether it executed successfully or not –The not-so-successful part of the test must not be buried in a pile of test reports.
6
Unit testing Java programs6 Which methods should be tested Test a method if you are not 100% sure that the method is correct. Methods that usually does not need testing –Simple get and set methods However, you might call get and set methods in testing other (more complex) methods –Simple toString methods
7
The Unified Software Development Process: Example testcase 1.1.1 Test Case 1 Verification of the generation of the billing events through the Customer Care interface Test Step Input/ActionExpected OutputResult 1Create an account or look up an existing one. Use the apposite link to create a billing event. A billing event is created. The account balance change reflects the presence of the new billing event Account balance: an amount is not shown in a proper way. Se screen shot Test Case 1.
8
Test cases - Example A property value of int between 2 and 9 Unit testing Java programs8 Test Case Test valueexpectedresult 11 (before boundary)rejected 22 (the boundary)accepted 33 (after boundary)accepted 48 (before boundary)accepted 59 (the boundary)accepted 610 (after boundary)rejected 75 (some value in middle)accepted 8-3 (a negative number)rejected
9
Do the exercise Unit testing Java programs9
10
10 Individual test cases How to in JUnit Annotate the test method with @org.junit.Test –No need to extends any classes or use special method names Unlike JUnit 3 Generally you would like one test class pr. Java class –The unit to test is a class.
11
Unit testing Java programs11 Fixtures: Before and After Sometimes you have 2 or more tests that must run on the same data. –To ease this JUnit introduces the concept of a “fixture”. You can annotate 2 methods in your test class from –@org.junit.Before Executed before each individual test Used to initialize test data Used quite often –@org.junit.After Executed after each individual test Used to clean up after the test –Examples: Close database or socket connections Not used very often
12
Unit testing Java programs12 How to test exceptions JUnit 3: Testing an expected exception try { method(); fail(“Exception expected”); } catch (ExpectedException ex) { /* ignore */ } JUnit 4: Testing an expected exception –Use an annotation @Test (expected = SomeException.class) public void testMetod() { … } If testMethod() does not throw SomeException the test fails.
13
Unit testing Java programs13 NetBeans assistance JUnit is a plugin to NetBeans –And many other IDE’s NetBeans can assist you in making TestCases for individual Java class and in assembling the test cases into test suites. –Right click the class you want to test –Tools → JUnit tests Choose JUnit 4 (not JUnit 3) –JUnit generates empty tests for each public / protected method in a Java class. –Fill you the empty tests and run the test. Like you run an ordinary program
14
Unit testing Java programs14 References Beck & Gamma JUnit Cookbook, http://junit.sourceforge.net/doc/cookbook/cookbook.htm Kent Beck & Erich Gamma invented JUnit Martin Fowler Refactoring, Addison Wesley 2000 Chapter 4 Building Tests, page 89-102 Extreme Programming, Code the Unit Test First http://www.extremeprogramming.org/rules/testfirst.html http://www.extremeprogramming.org/rules/testfirst.html Testing is an important discipline in XP (eXtreme Programming), which is another Kent Bech invention. Alex Garrett JUnit antipatterns http://www-128.ibm.com/developerworks/opensource/library/os-junit
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.