Tutorials : Using Mock Objects in Java :

Finally, there's the ListFile class. Since we want to replace its use of the FileHandler module with a mock module, we make a constructor that receives the implementation of the FileInterface. ListFile only has one method (list), used to list the contents of a specified file:

package hansen.playground.mock;

public class ListFile {
  
  FileInterface intf;
  
  public ListFile(FileInterface intf) {
    this.intf = intf;
  }  
    
  public boolean list(String filename) {
    intf.open(filename);
    if (intf.fault()) {
      System.out.println("ListFile: Error when opening file");
      return false;
    }
      
    while ((line = intf.read()) != null) {
      if (intf.fault()) {
        System.out.println("ListFile: Error when reading file");
        return false;
      }
      System.out.println(line);
    }
   
    intf.close();
      
    return true;
  }  
    
}

Error handling is deliberately kept as simple as possible. I'm sorry, but proper error handling is out of scope for this article.

You get the contents of a file listed if you code something like this:

ListFile lf = new ListFile(new FileHandler());
lf.list("c:\\myfile.txt");

The only thing to unit test in relation to the use of ListFile, is the return code from the list method, so you might build a small JUnit test program like this:

. . .
public void testOne() {
  boolean status;
  ListFile lf = new ListFile(new FileHandler());
  String file = "d:\\ex2.xml";
  status = lf.list(file);
  assertTrue("Error reading file " + file, status);

  file = "d:\\doesnotexist";
  status = lf.list(file);
  assertTrue("Should not find file " + file, !status);
}

How to Add Java Applets to Your Site

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.