Introduction to Unit Testing in Java

Get set up for creating unit tests in java in the Eclipse Integrated Development Environment

Create unit tests for a simple code library

Enhance your unit tests through the use of Data Driven techniques

Learn how to debug your unit tests

Requirements

  • Some Java programming experience. Understand the basic of creating and assigning variables, using logic comparisons, and are able to create simple class objects.
  • Able to use the Eclipse Integrated Development Environment (free to install and use!).
  • Able to create simple methods in Java – understanding of flow control (if-else, while, for, foreach) and assignment of values to variables.

Description

Through the use of hands-on work, you will learn how to create and work with unit tests in Java using the Eclipse integrated development environment. Get professional tips on creating, debugging, and improving your tests in a practical way.

The introduction uses a two iteration cycle to create unit tests that address the product code as it is being developed, giving you the basis for not only creating and improving your unit testing ability, but also pointing the way towards exercising these new concepts in BDD (Business/Behavior Driven Development) or TDD (Test Driven Development).

We do more than just talk about how to do this, we provide step-by-step labs detailing how to create your automation and how to improve it as we progress.

For this course, starter code projects are supplied, as well as finished projects you can adapt to fit your needs, or use for reference for further projects.

This course is designed this to help those who want to expand their capabilities in creating software test automation.

Whether you are a student, a manual tester, or are already a software test professional, this course can help you become more effective in your role.

Start your journey towards effective unit testing today!

Who this course is for:

  • Java developers new to the idea of unit testing
  • Test professionals looking to expand their abilities into creating test automation.
  • Test professionals who want to make their existing test automation more useful.

Course content

4 sections • 5 lectures • 46m total lengthExpand all sections

Introduction2 lectures • 6min

  • Introduction00:21
  • Setting Up05:25

Unit Testing, Iteration 11 lecture • 20min

  • Iteration 120:25

Unit testing, iteration 21 lecture • 16min

  • Unit Testing, Iteration 215:46

Wrapping up1 lecture • 5min

  • Dos and Don’ts for writing unit tests05:00

Introduction to Unit Testing in C#

Understand how to create and run unit tests for a library in C#

Learn how to apply unit tests to a test driven development process

Gain knowledge on what to test and what NOT to test

Hands-on lab – create unit tests and apply them to a project

Requirements

  • Some programming experience. Understand the basic of creating and assigning variables and using logic comparisons
  • Able to use Visual Studio (Community or Code – free to install and use!).
  • Able to create simple methods in C# – understanding of flow control (if-else, while, for, foreach) and assignment of values to variables.

Description

Through the use of hands-on work, you will learn how to create and work with unit tests in C# using the Visual Studio integrated development environment. Get professional tips on creating, debugging, and improving your tests in a practical way.

The introduction uses a two iteration cycle to create unit tests that address the product code as it is being developed, giving you the basis for not only creating and improving your unit testing ability, but also pointing the way towards exercising these new concepts in BDD (Business/Behavior Driven Development) or TDD (Test Driven Development).

We do more than just talk about how to do this, we provide step-by-step labs detailing how to create your automation and how to improve it as we progress.

For this course, starter code projects are supplied, as well as finished projects you can adapt to fit your needs, or use for reference for further projects.

This course is designed this to help those who want to expand their capabilities in creating software test automation.

Whether you are a student, a manual tester, or are already a software test professional, this course can help you become more effective in your role.

Start your journey towards effective unit testing today!

Who this course is for:

  • Beginning software professionals looking to increase their skillsets
  • Software professionals who want to learn about unit tests and Test Driven Development

Course content

4 sections • 5 lectures • 32m total lengthExpand all sections

Introduction2 lectures • 5min

  • Introduction00:20
  • Setting Up04:55

Unit Testing, Iteration 11 lecture • 10min

  • Unit Testing, Iteration 110:06

Unit Testing, Iteration 21 lecture • 12min

  • Unit Testing, Iteration 212:10

Wrapping up1 lecture • 5min

  • Wrapping Up05:17

Test and Behavior Driven Development (TDD/BDD)

This course provides the fundamentals of Test Driven Development (TDD) and Behavior Driven Development (BDD), and why it’s essential for building quality applications and preventing bugs, reducing development costs and improving performance.

About this course

Testing is one of the most critical processes of the Software Development Lifecycle (SDLC) and often contributes to preventing bugs, reducing development costs, and improving performance. Two of the best methods for testing software are Test Driven Development (TDD) and Behavior Driven Development (BDD). TDD tests individual units of code while BDD tests how these units work together.

This course introduces you to the fundamentals of both TDD and BDD, You’ll discover what automated testing is and why it is essential for building robust applications resilient to failure. You’ll explore the basics of testing, including test cases, testing levels, the traditional release cycle, and the benefits, concepts and popular tools involved.

This course provides multiple real-world inspired hands-on labs to demonstrate your skills with TDD and BDD. You’ll create TDD test cases by writing test assertions and building test fixtures, and you’ll run these test cases using the Nose testing package. You’ll practice more advanced TDD methods, such as increasing code coverage, generating and using fake data, and testing mock objects. You’ll also practice setting up a BDD environment using Behave, write the feature and step files, test a web interface using Selenium, and load sample data for testing.

By the end of the course you will have the knowledge and skills to perform test driven development (TDD) and behavior driven development (BDD) testing and understand when to apply these development techniques.

At a glance

  • Institution: IBM
  • Subject: Computer Science
  • Level: Intermediate
  • Prerequisites:This course is suitable for those with basic computer and IT literacy, and those looking to increase their current knowledge of software engineering.
  • Associated programs:
    • Professional Certificate in DevOps and Software Engineering Professional Certificate
  • Language: English
  • Video Transcript: English
  • Associated skills: Test-Driven Development (TDD), Resilience, Systems Development Life Cycle, Behavior-Driven Development, Software Development Life Cycle, Test Automation, Code Coverage, Software Release Life Cycle, Selenium (Software)

What you’ll learn

  • Explain the importance of testing.
  • Describe test-driven development (TDD) and explain its benefits for DevOps.
  • Develop unit tests with test assertions and test fixtures and then run the tests.
  • Improve unit testing through advanced TDD methods including coverage reports, factories, fakes, and mock objects.
  • Summarize the steps in a typical BDD workflow.
  • Describe popular BDD tools and their benefits.
  • Conduct BDD tests using Honcho and Behave.

Syllabus

Module 1: Introduction to Testing

  • The Importance of Testing
  • Why Developers Don’t Test
  • Testing Levels and Release Cycle
  • TDD and BDD
  • Testing Case Study

Module 2: Introduction to Test Driven Development

  • Benefits of Test Driven Development
  • Tools for TDD
  • Running Tests with Nose
  • Running Tests with Nose Demo
  • Hands-on Lab: Running Tests with Nose
  • Anatomy of a Test Case
  • Writing Test Assertions
  • Writing Test Assertions Demo
  • Hands-on Lab: Writing Test Assertions
  • Test Fixtures
  • Creating Initial State Using Test Fixtures Demo
  • Hands-on Lab: Creating an Initial State Using Test Fixtures

Module 3: Advanced Methods for Test Driven Development

  • Test Coverage
  • Running Test Cases with Coverage Demo
  • Hands-on Lab: Running Test Cases with Coverage
  • Factories and Fakes
  • Factories and Fakes Demo
  • Hands-on Lab: Using Factories and Fakes
  • Mocking
  • Mocking with Patch
  • Mocking with Mock Objects
  • Mocking with Mock Objects Demo
  • Hands-on Lab: Mocking Objects
  • Practicing Test Driven Development
  • Practicing Test Driven Development Demo
  • Hands-On Lab: Practicing Test Driven Development

Module 4: Introduction to Behavior-Driven Development

  • What is Behavior Driven Development
  • Benefits of BDD
  • BDD Workflow and Gherkin Syntax
  • Example of BDD
  • Tools for Behavior Driven Development
  • Overview of Behave
  • Environment Setup
  • Environment Setup Demo
  • Hands-on Lab: Setting up an Environment
  • Writing Feature Files
  • Writing Feature Files Demo
  • Hands-on Lab: Writing Feature Files
  • Selenium
  • UI Considerations
  • Writing Step Files
  • Writing Step Files Demo
  • Hands-on Lab: Writing Step Files
  • Loading Test Data with Behave
  • Loading Test Data with Behave Demo
  • Hands-on Lab: Loading Test Data with Behave

Module 5: Running Behave for Behavior Driven Development

  • Generating Steps with Behave
  • Generating Steps with Behave Demo
  • Hands-on Lab: Generating Steps with Behave
  • Implementing Your First Steps
  • Implementing Your First Steps Demo
  • Hands-on Lab: Implementing Your First Steps
  • Working with the Context
  • Working with the Context Demo
  • Hands-on Lab: Working with the Context
  • Using Variable Substitution
  • Using Variable Substitution Demo
  • Hands-on Lab: Using Variable Substitution
  • BDD in Practice

Module 6: Final Project

Introduction to Test Driven Development (TDD)

About this Course

Successful developers need to not only build the right software but build it right. To know your software works correctly, you need to test each unit of code. One of the best methods for this unit-level testing is test driven development.

This course provides a detailed overview of test driven development (TDD). First, you’ll learn what automated testing is and why it is essential for building robust applications resilient to failure. You’ll explore the basics of testing, including test cases, testing levels, and the traditional release cycle. You’ll learn about TDD and its complement, behavior driven development (BDD): TDD tests individual units of code while BDD tests how these units work together. Then you’ll examine TDD in detail. You’ll explore TDD’s benefits, concepts, and popular tools, and you’ll hone your new testing skills through hands-on labs. You’ll create TDD test cases by writing test assertions and building test fixtures, and you’ll run these test cases by using the Nose testing package. You’ll then practice more advanced TDD methods such as increasing code coverage, generating and using fake data, and testing mock objects.

This course is part of multiple programs

This course can be applied to multiple Specializations or Professional Certificates programs. Completing this course will count towards your learning in any of the following programs:

  • IBM DevOps and Software Engineering Professional Certificate
  • IBM Applied DevOps Engineering Professional Certificate

WHAT YOU WILL LEARN

  • Explain the importance of testing 
  • Describe test-driven development (TDD) and explain its benefits for DevOps
  • Develop unit tests with test assertions and test fixtures and then run the tests
  • Improve unit testing through advanced TDD methods including coverage reports, factories, fakes, and mock objects

SKILLS YOU WILL GAIN

  • Test Case
  • Software Testing
  • Behavior-Driven Development
  • Automated Testing
  • Test-Driven Development

Syllabus – What you will learn from this course

WEEK1

1 hour to complete

Introduction to Testing

This module provides an overview of software testing. You will learn about the importance of testing through an example: the development of the Apollo 11 Lunar Module’s guidance system. You will discover the numerous problems that occur when developers do not test their code. Then you will explore the four levels of testing and find out when each appears in the traditional release cycle. You will learn what test driven and behavior driven development are and why both are essential for effective testing. You will discover the purpose of test cases and witness their value through a demonstration.

6 videos

  • Course Introduction3m
  • The Importance of Testing8m
  • Why Developers Don’t Test 3m
  • Testing Levels and Release Cycle5m
  • TDD and BDD4m
  • Testing Case Study8m

2 readings

  • Course Introduction2m
  • Summary & Highlights 2m

2 practice exercises

  • Practice Quiz: Introduction to Testing15m
  • Graded Quiz: Introduction to Testing30m

WEEK2

4 hours to complete

Introduction to Test Driven Development

This module provides an overview of test driven development (TDD). You will learn what TDD is and discover the three basic steps in the TDD workflow, also known as the Red/Green/Refactor workflow. You will find out why TDD is important for DevOps and all automated testing. You will also discover popular testing tools for TDD and closely examine the features of several such tools for Python. This module also covers essential methods for performing TDD. You will explore two ways to run TDD tests: Python’s built-in test runner called unittest and the more feature-rich module called Nose. You will learn what assertions are and how to use them to test code. You will discover why you need to include both happy and sad paths in your test module. You will also find out what test fixtures are and how to use them to establish an appropriate initial state for each test.

9 videos

  • Benefits of Test Driven Development4m
  • Tools for TDD 4m
  • Running Tests with Nose3m
  • Running Tests with Nose Demo 8m
  • Anatomy of a Test Case7m
  • Writing Test Assertions 8m
  • Writing Test Assertions Demo13m
  • Test Fixtures7m
  • Creating Initial State Using Test Fixtures Demo 15m

2 readings

  • Summary & Highlights2m
  • Summary & Highlights 2m

3 practice exercises

  • Practice Quiz: Introduction to Test Driven Development15m
  • Practice Quiz: Methods for Test Driven Development21m
  • Graded Quiz: Methods for Test Driven Development30m

WEEK3

5 hours to complete

Advanced Methods for Test Driven Development

This module covers advanced methods for TDD. You will learn about test coverage: why it’s important, how to increase it by using test coverage reports, and why you should keep testing even at full test coverage. You will discover the value of testing against fake data and how to use factories to generate this data. You will also explore mocking, a process for mimicking the behavior of real objects, and you will find out the testing situations for which mocking is useful. You will learn how to use two common methods for mocking: patching a function call and mocking entire objects.

10 videos

  • Test Coverage 7m
  • Running Test Cases with Coverage Demo 18m
  • Factories and Fakes9m
  • Factories and Fakes Demo 17m
  • Mocking 4m
  • Mocking with Patch9m
  • Mocking with Mock Objects9m
  • Mocking with Mock Objects Demo16m
  • Practicing Test Driven Development5m
  • Practicing Test Driven Development Demo15m

1 reading

Summary & Highlights2m

2 practice exercises

  • Practice Quiz: Advanced Methods for Test Driven Development15m
  • Graded Quiz: Advanced Methods for Test Driven Development30m

WEEK4

1 hour to complete

Final Exam and Course Wrap-Up

2 readings

  • Congratulations & Next Steps3m
  • Team & Acknowledgements1m

1 practice exercise

Final Exam45m