A Simple Example
To illustrate the various possibilities when using mock objects we need a
simple example. Consider a case with these components:
- An application--called ListFile--with one single feature: it can list the
contents of a file to the console. This application is using the object that
we want to mock:
- The FileHandler class, which is the clever one that knows how to obtain
lines from a file. It implements the next item:
- An Interface--called FileInterface--defining the methods needed for
working with a file.
FileInterface looks like this:
Figure 1: The FileInterface
public interface FileInterface {
public void open(String filename) ;
public void close() ;
public String read() ;
public boolean fault();
}
You'll find the purpose of the methods evident:
| open |
Gets the name of the file and checks if it's available |
| close |
Closes the file after use |
| read |
Reads and returns the next line in the file |
| fault |
Used instead of Exceptions, returns true if something bad
has happened. Must be called after each call to open, close
and read |
The FileHandler implements the methods from the interface by using Java's
file capabilities:
package hansen.playground.mock;
import java.io.*;
public class FileHandler implements FileInterface {
private BufferedReader in;
private boolean error = false;
public void open(String filename) {
try {
in = new BufferedReader(new FileReader(filename));
} catch (FileNotFoundException e) {
error = true;
}
}
public void close() {
try {
in.close();
} catch (IOException e) {
// ignore ;-)
}
}
public String read() {
String s;
try {
s = in.readLine();
} catch (IOException e) {
error = true;
s = "";
}
return s;
}
public boolean fault() {
return error;
}
}
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|