Your SlideShare is downloading. ×
Introduction To J unit
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Introduction To J unit

270
views

Published on

Published in: Environment, Technology, Education

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
270
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Company LOGO JUnit Week 8, Session 3 Lecturer : ACB - STQA IE 31315 - Institut Teknologi Del Jl. Sisingamangaraja Sitoluama, Laguboti 22381 Toba – SUMUT http://www.del.ac.id
  • 2. Topics  What is JUnit?  Why JUnit framework?  JUnit mechanics  Fixtures  Test suites  Test runners  JUnit classes 5/20/2014 STQA/Week09/JUnit 2
  • 3. What is JUnit?  An unit-testing tool for Java programs  Supports Test-Driven-Development  Agile Method  Goal: Accelerate programming and increase the quality of code.  Not for testing GUI 5/20/2014 STQA/Week09/JUnit 3
  • 4. JUnit (cont’d)  Each method under test is treated as a unit  The automated testing scripts are in the form of methods in another Java source file  The job of the software developers/testers is then to write the automated testing scripts 5/20/2014 STQA/Week09/JUnit 4
  • 5. Why Junit?  Without JUnit, you will have to use println() to print out some result: 5/20/2014 STQA/Week09/JUnit 5
  • 6. Why JUnit (cont’d) Without JUnit:  No explicit concept of test passing or failure  No mechanism to collect results in structured fashion  No replicability 5/20/2014 STQA/Week09/JUnit 6
  • 7. Key Goals of JUnit  Easy to use to create tests  Create tests that retain their value over time  Leverage existing tests to write new ones (reusable) 5/20/2014 STQA/Week09/JUnit 7
  • 8. What does JUnit Provide?  API for easily creating Java test cases 5/20/2014 STQA/Week09/JUnit 8
  • 9. What does JUnit Provide?  Comprehensive assertion facilities  verify expected versus actual results 5/20/2014 STQA/Week09/JUnit 9
  • 10. What does JUnit Provide?  Test runners for running tests 5/20/2014 STQA/Week09/JUnit 10
  • 11. What does JUnit Provide?  Reporting 5/20/2014 STQA/Week09/JUnit 11
  • 12. What does JUnit Provide? Aggregation facility (test suites)  Used to collect all the test cases  Suites can contain testCases and testSuites – TestSuite(java.lang.Class theClass, <java.lang.String name>) – addTest(Test test) or addTestSuite(java.lang.Class testClass)  Suites can have hierarchy 5/20/2014 STQA/Week09/JUnit 12
  • 13. How to write JUnit-based testing code (Minimum)  Include JUnit.jar in the classpath  Define a subclass of TestCase class  Define one or more public testXXX() methods in the subclass  Write assert methods inside the testXXX methods()  Optionally define main() to run the TestCase in standalone mode 5/20/2014 STQA/Week09/JUnit 13
  • 14. Test methods  Test methods has name pattern: testXXX()  XXX reflects the method of the target class  Test methods must have no arguments  Test methods are type of void 5/20/2014 STQA/Week09/JUnit 14
  • 15. Very Simple Test import junit.framework.TestCase; public class SimpleTest extends TestCase { public SimpleTest(String name) { super(name); } // Test code public void testSomething() { System.out.println("About to call assertTrue() method..."); assertTrue(4 == (2 * 2)); } // You don't have to have main() method, use Test runner public static void main(String[] args){ junit.textui.TestRunner.run(SimpleTest.class); } } 5/20/2014 STQA/Week09/JUnit 15
  • 16. Assert Statements  JUnit Assertions are methods starting with assert  Determines the success or failure of a test  An assert is simply a comparison between  an expected value and an actual value  Two variants  assertXXX(...)  assertXXX(String message, ...) the message is displayed when the assertXXX() fails 5/20/2014 STQA/Week09/JUnit 16
  • 17. Assert Statements (cont’d)  Asserts that a condition is true – assertTrue(boolean condition) – assertTrue(String message, boolean condition)  Asserts that a condition is false – assertFalse(boolean condition) – assertFalse(String message, boolean condition) 5/20/2014 STQA/Week09/JUnit 17
  • 18. Assert Statements (cont’d)  Asserts expected.equals(actual) behavior – assertEquals(expected, actual) – assertEquals(String message, expected, actual)  Asserts expected == actual behavior – assertSame(Object expected, Object actual) – assertSame(String message, Object expected, Object actual) 5/20/2014 STQA/Week09/JUnit 18
  • 19. Assert Statements (cont’d)  Asserts object reference is null – assertNull(Object obj) – assertNull(String message, Object obj)  Asserts object reference is not null – assertNotNull(Object obj) – assertNotNull(String message, Object obj)  Forces a failure – fail() – fail(String message) 5/20/2014 STQA/Week09/JUnit 19
  • 20. Fixtures  setUp() and tearDown() used to initialize and release common test data  setUp() is run before every test invocation  tearDown() is run after every test method 5/20/2014 STQA/Week09/JUnit 20
  • 21. JUnit Classes 5/20/2014 STQA/Week09/JUnit 21
  • 22. References  www.junit.org  http://www.javapassion.com/javase/javaju nit.pdf 5/20/2014 STQA/Week09/JUnit 22
  • 23. THANK YOU 5/20/2014 STQA/Week09/JUnit 23