Skip to Content
Java Extreme Programming Cookbook
book

Java Extreme Programming Cookbook

by Eric M. Burke, Brian M. Coyner
March 2003
Intermediate to advanced
288 pages
7h 4m
English
O'Reilly Media, Inc.
Content preview from Java Extreme Programming Cookbook

Testing Swing Code

Problem

You want to write unit tests for Swing portions of your application.

Solution

Keep application logic separate from GUI layout, thus minimizing the need to test graphical code directly. Also, design your user interface in terms of discrete components that are testable without complex setup and configuration.

Discussion

Graphical code presents many testing challenges. For instance, many Swing functions only work when the components are visible on screen. In these cases, your tests have to create dummy frames and show the components before the tests can succeed. In other cases, Swing schedules events on the AWT event queue rather than updating component states immediately. We show how to tackle this issue in the next recipe.

Ideally, you should strive to minimize the need to test Swing code in the first place. Application logic, such as computing the monthly payment amount for a loan, should not be intertwined with the JTable that displays the payment history. Instead, you might want to define three separate classes:

Loan

A utility class that keeps track of payments, interest rates, and other attributes. This class can be tested independently of Swing.

LoanPaymentTableModel

A Swing table model for a history of loan payments. Because table models are nongraphical, you can test them just like any other Java class.

JTable

Displays the LoanPaymentTableModel. Because JTable is provided with Swing, you don’t have to test it.

There are more complex scenarios where you ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Java Thread Programming

Java Thread Programming

Paul Hyde
Distributed Computing in Java 9

Distributed Computing in Java 9

Raja Malleswara Rao Malleswara Rao Pattamsetti
Java 9 Dependency Injection

Java 9 Dependency Injection

Nilang Patel, Krunal Patel

Publisher Resources

ISBN: 0596003870Catalog PageErrata