Quantcast
Channel: web – Imran Tariq's Blog
Viewing all articles
Browse latest Browse all 33

Mock Object

$
0
0

A Mock Object is an object that substitutes for a real object. In object-oriented programming, mock objects are simulated objects that mimic the behavior of real objects in controlled ways.

A computer programmer typically creates a mock object to test the behavior of some other object, in much the same way that a car designer uses a crash test dummy to simulate the dynamic behavior of a human in vehicle impacts.

http://en.wikipedia.org/wiki/Mock_object

Mock objects allow you to set up test scenarios without bringing to bear large, unwieldy resources such as databases. Instead of calling a database for testing, you can simulate your database using a mock object in your unit tests. This frees you from the burden of having to set up and tear down a real database, just to test a single method in your class.

The word “Mock” is sometimes erroneously used interchangeably with “Stub.” The differences between the two words are described here. Essentially, a mock is a stub object that also includes the expectations (i.e. “assertions”) for proper behavior of the object/method under test.

For example:

class OrderInteractionTester...
 public void testOrderSendsMailIfUnfilled() {
 Order order = new Order(TALISKER, 51);
 Mock warehouse = mock(Warehouse.class);
 Mock mailer = mock(MailService.class);
 order.setMailer((MailService) mailer.proxy());
mailer.expects(once()).method("send");
 warehouse.expects(once()).method("hasInventory")
 .withAnyArguments()
 .will(returnValue(false));
order.fill((Warehouse) warehouse.proxy());
 }
 }

Notice that the warehouse and mailer mock objects are programmed with the expected results.


Viewing all articles
Browse latest Browse all 33

Trending Articles