24
Test Driven Development and Testing Private Methods using JUnit By: Taylor Helsper

By: Taylor Helsper. Introduction Test Driven Development JUnit Testing Private Methods TDD Example Conclusion

Embed Size (px)

Citation preview

Test Driven Development

and Testing Private Methods using JUnit

By: Taylor Helsper

Introduction

Test Driven Development

JUnit

Testing Private Methods

TDD Example

Conclusion

Outline

What is this lecture?◦ Part of a CSE 4000 Independent Study Course

◦ “Practical Issues in Software Engineering”

What’s the point?◦ To provide practical information to students in

Software Engineering topics

Introduction

Note: The products discussed in this presentation are examples used for teaching purposes and are not endorsements of the products.

Introduction

Test Driven Development

JUnit

Testing Private Methods

TDD Example

Conclusion

Outline

What is it?

◦ Development/Testing process where tests are generated before the development

◦ Development is completed based on the tests

Test Driven Development

Why is it useful?

◦ Distinct Steps

◦ Good Metrics

◦ Ensures Completion Based on Requirements/Design

Test Driven Development

Why is it useful?

◦ Only necessary features are implemented

◦ Short Development Lifecycle

◦ Easy to Accommodate Changes

Test Driven Development

Steps

◦ Write tests based on design / requirements

◦ Write code

◦ Run tests

◦ Repeat until all tests pass

Test Driven Development

Test Driven Development

http://en.wikipedia.org/wiki/Test-driven_development

Introduction

Test Driven Development

JUnit

Testing Private Methods

TDD Example

Conclusion

Outline

What is it?

◦ JUnit is a testing framework for Java

◦ It allows programmers to write test cases for Java classes

JUnit

Why use it?

◦ Repeatability

◦ Metrics / Measurement

◦ Easy Integration

JUnit

A JUnit Test Case

JUnit Examples

JUnit Before/ After

JUnit Examples

Introduction

Test Driven Development

JUnit

Testing Private Methods

TDD Example

Conclusion

Outline

Why?

◦ Better Tests

◦ Higher Probability Errors are Found

◦ Meet Regulations

Testing Standards

Code Coverage

Testing Private Methods

How?

◦ Use Reflection

◦ Java classes know info about themselves

Functions

Variables

Testing Private Methods

Java Example

◦ Get Private Access

Testing Private Methods

Java Example

◦ Test Private Method

Testing Private Methods

Introduction

Test Driven Development

JUnit

TDD Example

Conclusion

Outline

Math Class for a Calculator Program

Steps

◦ Generate Tests

◦ Code

◦ Run Tests

◦ Repeat

TDD Example

Test Driven Development is important to understand

TDD is useful in many circumstances

TDD◦ Saves Money◦ Is Agile◦ Offers Good Metrics

Conclusion

Junit - http://www.junit.org/

Netbeans – http://netbeans.org/

JUnit Examples - http://junit.sourceforge.net/doc/cookbook/cookbook.htm

MSU Classes and work experience

Stack Overflow for Reflection Code - http://stackoverflow.com/questions/34571/whats-the-best-way-of-unit-testing-private-methods

Real’s How To for Reflection Code - http://www.rgagnon.com/javadetails/java-0031.html

“Subverting Java Access Protection for Unit Testing” by Ross Burton. 11/12/2003. onjava.com.

References

Questions?