JUnit Dwight Deugo (dwight@espirity.com) Nesa Matic (nesa@espirity.com) Portions of the notes for this lecture include excerpts from the Eclipse 3.0 and.

Slides:



Advertisements
Similar presentations
J-Unit Framework.
Advertisements

T ESTING WITH J UNIT IN E CLIPSE Farzana Rahman. I NTRODUCTION The class that you will want to test is created first so that Eclipse will be able to find.
Objectives: Test Options JUnit Testing Framework TestRunners Test Cases and Test Suites Test Fixtures JUnit.
Approach of Unit testing with the help of JUnit Satish Mishra
Eclipse Architecture Dwight Deugo Nesa Matic
1 Software Testing and Quality Assurance Lecture 23 – JUnit Tutorial.
JUnit Syed Nabeel. Motivation Unit Testing Responsibility of  developer Rarely done properly Developers Excuse: “I am too much in a hurry”
20-Jun-15 More About JUnit. Test suites A test suite is a group of JUnit tests You can create a test suite in Eclipse as follows: File  New  Other...
JUnit Introduction and Advanced Features. Topics Covered  Junit Introduction  Fixtures  Test Suites  Currency Example.
Eclipse Introduction Dwight Deugo Nesa Matic
Writing a Unit test Using JUnit At the top of the file include: import junit.framework.TestCase; The main class of the file must be: public Must extend.
1 CSC/ECE 517 Fall 2010 Lec. 2 Overview of Eclipse Lectures 1.Overview 2.Installing and Running 3.Building and Running Java Classes 4.Debugging 5.Testing.
Views Dwight Deugo Nesa Matic
Presentation Outline What is JUnit? Why Use JUnit? JUnit Features Design of JUnit Downloading JUnit Writing Tests – TestCase – TestSuite Organizing The.
13-Jul-15 Test Suites. Test classes A unit test is a test of an individual class By convention, we name test classes after the class that is being tested.
14-Jul-15 JUnit 4. Comparing JUnit 3 to JUnit 4 All the old assertXXX methods are the same Most things are about equally easy JUnit 4 makes it easier.
Unit Testing Discussion C. Unit Test ● public Method is smallest unit of code ● Input/output transformation ● Test if the method does what it claims ●
George Blank University Lecturer. JUnit for Test Driven Development By Vivek Bhagat, George Blank.
The Design of JUnit Yonglei Tao. Test-First Development  An essential element in eXtreme Programming (XP)  Test is written before the code  As an executable.
© Dr. A. Williams, Fall Present Software Quality Assurance – JUnit Lab 1 JUnit A unit test framework for Java –Authors: Erich Gamma, Kent Beck Objective:
Lesson 7 Unit Testing /JUnit/ AUBG ICoSCIS Team Assoc. Prof. Stoyan Bonev March, , 2013 SWU, Blagoevgrad.
JUnit The framework. Goal of the presentation showing the design and construction of JUnit, a piece of software with proven value.
Principles of Object Oriented Programming Practical session 2 – part A.
Computer Science and Engineering College of Engineering The Ohio State University JUnit The credit for these slides goes to Professor Paul Sivilotti at.
JUnit in Action SECOND EDITION PETAR TAHCHIEV FELIPE LEME VINCENT MASSOL GARY GREGORY ©2011 by Manning Publications Co. All rights reserved. Slides Prepared.
Testing in Extreme Programming
Automated GUI testing How to test an interactive application automatically?
Workbench Overview Dwight Deugo Nesa Matic
Unit testing Unit testing TDD with JUnit. Unit Testing Unit testing with JUnit 2 Testing concepts Unit testing Testing tools JUnit Practical use of tools.
CSC 216/001 Lecture 4. Unit Testing  Why is it called “unit” testing?  When should tests be written?  Before the code for a class is written.  After.
JUnit & Eclipse1 DEPARTMENT OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING CONCORDIA UNIVERSITY Feb 2, 2009 revision 1.2 – Feb 2, 2009 by Emil Vassev & Joey.
Introduction to Eclipse CSC 216 Lecture 3 Ed Gehringer Using (with permission) slides developed by— Dwight Deugo Nesa Matic
Debugging Dwight Deugo Nesa Matic
Inheritance Dwight Deugo Nesa Matic
JUnit test and Project 3 simulation. 2 JUnit The testing problems The framework of JUnit A case study Acknowledgement: using some materials from JUNIT.
Introduction to JUnit 3.8 SEG 3203 Winter ‘07 Prepared By Samia Niamatullah.
JUnit Dwight Deugo Nesa Matic
ESO - Garching 23 June – 02 July, 2003 ACS Course JUnit for Java Unit Testing H. Sommer.
Unit Testing with JUnit and Clover Based on material from: Daniel Amyot JUnit Web site.
JUnit Dwight Deugo Nesa Matic
A tool for test-driven development
EMBEDDED REAL-TIME, INC. December 8, 2015 Java Unit Mark Mosher Rochester Java Users Group.
JUnit Don Braffitt Updated: 10-Jun-2011.
JUnit Eclipse, Java and introduction to Junit. Topics Covered  Using Eclipse IDE  Example Java Programs  Junit Introduction.
Classes Dwight Deugo Nesa Matic
S Ramakrishnan1 Systems V & V, Quality and Standards Dr Sita Ramakrishnan School CSSE Monash University.
1 CSC 216 Lecture 3. 2 Unit Testing  The most basic kind of testing is called unit testing  Why is it called “unit” testing?  When should tests be.
Unit, Regression, and Behavioral Testing Based On: Unit Testing with JUnit and CUnit by Beth Kirby Dec 13, 2002 Jules.
Test a Little, Code a Little Colin Sharples IBM Global Services New Zealand Colin Sharples IBM Global Services New Zealand.
JUnit, Bugzilla James Atlas July 24, 2008 *part of today’s slides courtesy of Dwight Deugo and Nesa Matic under the EPL.
1 JUnit. 2 Unit Testing with JUnit If code has no automated test case written for it to prove that it works, it must be assumed not to work. An API that.
Software Design– Unit Testing SIMPLE PRIMER ON Junit Junit is a free simple library that is added to Eclipse to all automated unit tests. The first step,
Test automation / JUnit Building automatically repeatable test suites.
Java IDE Dwight Deugo Nesa Matic
Getting Started with JUnit Getting Started with JUnit The benefits and ease of writing and running JUnit test cases and test suites. The benefits and ease.
SWE 434 SOFTWARE TESTING AND VALIDATION LAB2 – INTRODUCTION TO JUNIT 1 SWE 434 Lab.
Software Construction Lab 10 Unit Testing with JUnit
Don Braffitt Updated: 26-Mar-2013
Unit testing Java programs Using JUnit
Debugging Dwight Deugo
Executing Runtime Checks (For Comp401 and Comp410)
Computer Science 209 Testing With JUnit.
Software Engineering 1, CS 355 Unit Testing with JUnit
Overview of Eclipse Lectures
Introduction to Eclipse
Introduction to JUnit IT323 – Software Engineering II
Debugging Dwight Deugo
Java IDE Dwight Deugo Nesa Matic Portions of the notes for this lecture include excerpts from.
Joel Adams and Jeremy Frens Calvin College
JUnit Tutorial Hong Qing Yu Nov 2005.
Presentation transcript:

JUnit Dwight Deugo (dwight@espirity.com) Nesa Matic (nesa@espirity.com) Portions of the notes for this lecture include excerpts from the Eclipse 3.0 and 3.1 Help facility. These excerpts are made available under EPL for ease of use by instructors, (c) Copyright (c) 2000, 2005 IBM Corporation and others. For more complete information instructors are encouraged to read the full notes from the Eclipse Help facility.

Additional Contributors None as of September, 2005

Module Road Map JUnit In this module, you will learn about JUnit and Eclipse’s support of JUnit

Module Road Map JUnit What is JUnit? Where Does it Come From? Working with TestCases Working with TestSuites JUnit Window In particular we will talk about JUnit testing framework, its components and how to use it within the Eclipse environment.

What is JUnit? Regression testing framework Written by Erich Gamma and Kent Beck Used for unit testing in Java Open Source Released under IBM's CPL JUnit is a testing framework used for unit testing. Testing is an important activity in the development, and there are different levels of testing. There are unit testing, integration testing, regression testing, load balancing testing, etc. JUnit framework is designed to help you with the lowest level of testing, unit testing. CPL is Common Public License

Where Does JUnit Come From? JUnit’s web site: http://junit.org/index.htm Eclipse includes JUnit Eclipse provides new GUI to run JUnit test cases and suites You can run your unit tests outside of Eclipse If you wish using TestRunner Using JUnit’s Window TestRunner is the JUnit user interface for running test cases and suites

Eclipse JUnit Setup Eclipse preferences can be set in the JUnit Preferences window For the most part you can leave these alone Filters needed to identify packages, classes, or patterns that should not be shown in the stack trace of a test failure

JUnit Test Cases Test case Implemented a subclass of TestCase Runs multiple tests Implemented a subclass of TestCase Define instance variables that store the state of the tests in the class Initialize TestCase by overriding setUp method Clean-up after test case is done by overriding tearDown method When you use JUnit for unit testing you write test cases. These test cases are implemented as subclasses of TestCase, which is part of the JUnit framework. The test cases correspond to Java classes, and contain code used for testing of classes’ methods. It is possible to initialize test case (for example initialize objects) and also clean it up after testing is performed.

Creating TestCases in Eclipse… Create a new package to contain your test case classes Add the JUnit JAR file to the project’s buildpath Or, will be done for you the first time you build a test case It is good design to keep test classes separate from the domain classes, so they should be in a separate package. It is important that JUnit jar file is added to the project’s buidpath, as otherwise JUnit classes won’t be found in your project.

…Creating TestCases in Eclipse Select your testing package From the context menu select New  JUnit Test Case In the next Window fill in the name of your test case This will create the corresponding class in your testing package As for many other things Eclipse provides wizards for creating test cases that get you through the process of creating them. Selecting methods in the wizard will allow creation of templates for these methods that later on you can change.

TestCase Template package com.espirity.course.testing; import junit.framework.TestCase; public class FirstTestCase extends TestCase { public FirstTestCase(String arg0) { super(arg0); } public static void main(String[] args) { protected void setUp() throws Exception { super.setUp(); protected void tearDown() throws Exception { super.tearDown(); If creation of setup() and tearDown() methods was selected in the wizard, Eclipse will create these methods when creating the test case. Than you can put a code in these methods to initialize resources before test runs, and clean up resources before test finishes.

Adding Tests to TestCases Any method in a TestCase class is considered a test if it begins with the word test You can write many tests (have many test methods) Each test method should use a variety of assert methods to test things about the state of their classes under tests Assert methods are inherited Assert methods are used for actual testing. These methods are inherited from the test cases superclass.

Assert Methods Assert methods include: assertEqual(x,y) assertFalse(boolean) assertTrue(boolean) assertNull(object) assertNotNull(object) assetSame(firstObject, secondObject) assertNotSame(firstObject, secondObject)

Adding Two Tests to TestCase package testing; import junit.framework.TestCase; public class FirstTestCase extends TestCase { public FirstTestCase(String arg0) { super(arg0); } public static void main(String[] args) {} protected void setUp() throws Exception { super.setUp(); protected void tearDown() throws Exception { super.tearDown(); public void testCompareSucceed() { assertEquals(0, 0); //this assertion will succeed public void testCompareFail() { assertEquals(0, 1); //this assertion will fail

Running TestCase Select TestCase class From the Run menu select Run  Run As  JUnit Test This will run the tests in your TestCase class along with the setup and teardown methods You will then get a report in the JUnit Window

JUnit Window… Red indicates a test has failed If you wish to see the tests in TestCase click on the Hierarchy tab You can see which test failed You can see the call trace leading to the failure JUnit window gives you a report on running the tests. It indicates which tests fail and also gives you the call trace for each failure. All the details on running the tests are displayed in the window. These details include how many errors occurred, how many tests run.

…JUnit Window You can see how many tests ran Errors occur when exceptions are thrown How many failures occurred You can see the details of the failure

Creating JUnit TestSuite… Runs multiple test cases or suites Implemented as subclass of TestSuite To create a TestSuite Select your testing package From the context menu select New  Other…  Java  JUnit Then from the Wizard select JUnit Test Suite TestSuite is a class from JUnit framework that allows you to group and run individual tests together. Creation of a test suite in Eclipse is similar to creation of test case, as wizards get you through the process of creating it.

…Creating JUnit TestSuite Fill in the name of your TestSuite Class Select the TestCases to include in your TestSuite

TestSuite Template package com.espirity.course.testing; import junit.framework.Test; public class AllInclusiveTestSuite { public static Test suite() { TestSuite suite = new TestSuite("Test for com.espirity.course.testing"); //$JUnit-BEGIN$ suite.addTestSuite(FirstTestCase.class)); suite.addTestSuite(SecondTestCase.class)); //$JUnit-END$ return suite; }

Running TestSuite Select TestSuite class From the Run menu select Run  Run As  JUnit Test This will run the test cases in your TestSuite class You will then get a report in the JUnit Window Running test suites is similar to running test cases. The difference is that with running the test case you run an individual test case class, and with running the test suite you run multiple test cases, i.e. multiple classes.

Interesting Point The JUnit classes TestCase and TestSuite both implement the JUnit Test interface Therefore, you can add JUnit TestSuites to other TestSuites public static Test suite() { TestSuite suite = new TestSuite("Test for testing"); //$JUnit-BEGIN$ suite.addTestSuite(FirstTestCase.class); suite.addTestSuite(SecondTestCase.class); suite.addTest(AllTests.suite()); //$JUnit-END$ return suite; } This allows you to nest test suites, and test many suites at the same time. It is an important feature when you have many test cases and many test suites as you can group them and run them together. AllTests is another class that implements a TestSuite.

Summary You have learned: What is JUnit How it is integrated into Eclipse How to write Test Cases How to write Test Suites How do use JUnit in Eclipse

Labs! Now it’s time for the lab. Lab: Using JUnit