Mocking in Java with Mockito

46 %
54 %
Information about Mocking in Java with Mockito

Published on November 16, 2008

Author: rapaul


A mocking framework for Java Richard Paul -

State vs Interaction testing State testing asserts properties on an object e.g. assertEquals(4, item.getCount()); Interaction testing verifies the interactions between objects. e.g. Did my controller correctly call my service. Mockito provides a framework for interactions testing.

Test Doubles Terminology defined by Gerard Meszaros. See: Test Stub Hand coded object used for testing. Mock object (e.g. EasyMock) Expectations configured before calling the method under test. Test Spy (e.g. Mockito) Verification occurs after the method under test has been called.

Mockito Example Simple MVC example: Item - simple POJO (has a name and ID). ItemController - handles requests from the browser. ItemService - service the ItemController delegates to. ItemNotFoundException Following slides detail testing the ItemController using Mockito. Note: the controller is implemented using a Springframework 2.5 annotation style, with annotations omitted for clarity.

View Item - using when Eclipse then generates the viewItem method signature in

Test Failure Then implement viewItem to pass the test

Delete Item - using verify Eclipse then generates the deleteItem method signature in

Wanted, but not invoked

Exceptional Cases - using thenThrow Allows simple testing of exceptional cases with similar syntax to thenReturn .

Initialising mocks in Mockito Allows access to when, verify etc without the ... Mockito.prefix ...

Default Values Mockito provides default values (null, 0, empty list, etc) for method calls that have not been defined. This allows you to define only the interactions that are relevant to your test. See slides by Szczepan Faber Slides 8-31 Why ignore interactions not directly related to a test case? (slide 29) quot;because aggressive validation makes the tests brittlequot; quot;because I have to fix tests even when the code is not brokenquot; quot;... can increase noisequot; quot;or lead to overspecificationquot;

More features... Verify how many times a method is called. e.g. verify(itemService, never()).deleteItem(3); verify(itemService, atLeastOnce()).deleteItem(3); verify(itemService, times(3)).deleteItem(3); Verify the order calls are made using InOrder Chain subsequent calls to return different values. when(itemService.getItem(3)) .thenReturn(item1) .thenReturn(item2); Argument matchers when(service.get(eq(1), anyFloat()).thenReturn(quot;xquot;); Can mock concrete classes (uses cglib)

Comments, queries, suggestions or theories? Slides + code examples will be up on

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

mockito - simpler & better mocking - Google Project Hosting

mockito. Loading... Google; About Google; Privacy; Terms ...
Read more

GitHub - mockito/mockito: Most popular Mocking framework ... Most popular mocking framework for Java. Current version is 2.x. Still on Mockito 1.x? See what's new in Mockito 2! Mockito continuously delivers ...
Read more

Unit tests with Mockito - Tutorial - vogella

Unit tests with Mockito - Tutorial. Lars Vogel, (c) ... Using Mockito for mocking objects. ... Git, Java, Gradle and Spring.
Read more

Mockito – Wikipedia

Mockito unterscheidet sich von anderen Mocking-Frameworks insofern, als mit Mockito die ... ähnlichen Mocking-Framework für Java ...
Read more

Mockito examples - Java - Google Sites

Mockito examples. Mockito is a mock object framework for Java. ... Using DI makes mocking even easier when driving out a design with unit tests.
Read more

Unit Tests mit Mockito - JAXenter

Mockito gehört in den Werkzeugkasten jedes Java-Entwicklers. Toggle ... Mithilfe des Mocking-Frameworks Mockito können genau diese Abhängigkeiten ...
Read more

JUnit Testing using Mockito and PowerMock - codecentric Blog

codecentric Blog. New; Agile; ... More Mocking with Mockito. ... Mockito is offering a very readable and easy to use interface for mocking tests in Java.
Read more

unit testing - What's the best mock framework for Java ...

What's the best mock framework for Java? [closed] ... PowerMock covers all needs which are absent in Mockito, such as mocking a static code, ...
Read more

Mockito framework site

Mockito is a mocking framework that tastes really good. ... Massive StackOverflow community voted Mockito the best mocking framework for java.
Read more

Mocking Framework – Wikipedia

... kann ein Mocking-Framework eingesetzt werden. ... Java. Mockito; JMockit; Easymock; PowerMock; Ruby. rr; RSpec-Spies; Python. Mock; pymox ...
Read more