Book Image

Mastering Unit Testing Using Mockito and JUnit

By : Sujoy Acharya
Book Image

Mastering Unit Testing Using Mockito and JUnit

By: Sujoy Acharya

Overview of this book

Table of Contents (17 chapters)
Mastering Unit Testing Using Mockito and JUnit
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Spy


Spy is a variation of a mock/stub, but instead of only setting expectations, spy records the calls made to the collaborator. The following example explains this concept:

class ResourceAdapter{  
  void print(String userId, String document, Object settings) {
    if(securityService.canAccess("lanPrinter1", userId)) {
      printer.print(document, settings);
    }
  }
}

To test the print behavior of the ResourceAdapter class, we need to know whether the printer.print() method gets invoked when a user has permissions. Here, the printer collaborator doesn't do anything; it is just used to verify the ResourceAdapter behavior.

Now, consider the following code:

class SpyPrinter implements Printer{
  private int noOfTimescalled = 0;
   @Override
  public void print(Object document, Object settings) {
    noOfTimescalled++;
  }
  public int getInvocationCount() {
    return noOfTimescalled;
  }
}

SpyPrinter implements the Printer.print() call, increments a noOfTimescalled counter, and getInvocationCount...