Mockito

Mockito
mockito
Mockito Logo
Maintainer Szczepan Faber
Aktuelle Version 1.9.0
(23. Juli 2011)
Betriebssystem Plattformübergreifend
Programmier­sprache Java
Kategorie Test-Framework
Lizenz MIT
Mockito bei code.google.com

Mockito ist eine freie (MIT-Lizenz) Programmbibliothek zum Erstellen von Mock-Objekten für Unit-Tests von Java-Programmen.

Inhaltsverzeichnis

Funktionalität

Im Unit-Test sollen einzelne Testobjekte (meist Klassen oder Methoden) isoliert von ihrer Umgebung getestet werden. Um einen vollständig isolierten Test zu erreichen, müssen die Schnittstellen, über die das zu testende Objekt auf seine Umgebung zugreift, durch Mock-Objekte ersetzt werden. Die Mock-Objekte fungieren dabei als Platzhalter für die echten Objekte. Mockito hilft dabei dem Entwickler der Unit-Tests diese Mock-Objekte samt ihrem Verhalten zu generieren und gegebenenfalls auch zu prüfen wie diese vom zu testenden Code aufgerufen wurden. Die Mock-Objekte werden dabei ähnlich wie bei anderen Mocking Frameworks zur Laufzeit dynamisch generiert. Es müssen somit keine Klassen von Hand geschrieben oder deren Quellcode mit denen der echten Klassen synchron gehalten werden. Dynamische Mock Objekte sind somit sicherer gegenüber Refactoring. Mittels Mockito können Klassen und Interfaces gleichermaßen gemockt werden.

Mockito unterscheidet sich von anderen Mocking Frameworks insofern, dass mit Mockito die Entwickler das Verhalten des zu testenden Systems verifizieren können, ohne im Vorfeld diesbezügliche Annahmen zu treffen[1]. Damit wird die oft kritisierte enge Kopplung von Unit-Tests an den getesteten Code[2] reduziert.

Geschichte

Szczepan Faber startete 2007 das mockito Projekt, da er mit der Komplexität vorhandener Mocking Frameworks unzufrieden war. Szczepan begann mit der Erweiterung der Syntax und Funktionalität von EasyMock – einem ähnlichen Mocking Framework für Java – schrieb aber schlussendlich den meisten Code für Mockito um.[3] Die ersten Version von Mockito wurden bereits Anfang 2008 für ein Projekt beim The Guardian in London verwendet.[4]

Verwendung

Zur Benutzung von Mockito werden folgende Schritte durchlaufen:

  • Mock-Objekt von der Klasse bzw. Schnittstelle, die simuliert werden soll, erzeugen:
    List mockedList = mock(List.class);
  • Mock-Objekt benutzen:
    mockedList.add("one");
    mockedList.clear();
  • Verifizieren ob das Mock-Objekt so benutzt wurde wie vorgesehen:
    verify(mockedList).add("one");
    verify(mockedList).clear();

Siehe auch

Weblinks

Einzelnachweise

  1. Features and Motivations. Abgerufen am 19. Mai 2011 (englisch).
  2. Martin Fowler: Mocks Aren't Stubs. 2007, abgerufen am 19. Mai 2011 (englisch).
  3. Szczepan Faber: Mockito. 14. Januar 2008, abgerufen am 19. Mai 2011 (englisch).
  4. mockito. simpler & better mocking. Abgerufen am 19. Mai 2011 (englisch).

Wikimedia Foundation.

Игры ⚽ Нужен реферат?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Mockito — is an open source testing framework for Java released under the MIT License. The framework allows the creation of Test Double objects called, Mock Objects in automated unit tests for the purpose of Test driven Development (TDD) or Behavior Driven …   Wikipedia

  • PowerMock — Dieser Artikel wurde aufgrund von inhaltlichen Mängeln auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf… …   Deutsch Wikipedia

  • Easymock — Maintainer Tammo Freese, Henri Tremblay Entwickler OFFIS, Tammo Freese, Henri Tremblay Aktuelle Version 3.0 …   Deutsch Wikipedia

  • JUnit — Entwickler u.a. Kent Beck und Erich Gamma Aktuelle Version 4.10 (5. Oktober 2011) Betriebssystem Plattformübergreifend Programmier­sprache …   Deutsch Wikipedia

  • Разработка через тестирование — Разработка программного обеспечения Процесс разработки ПО Шаги процесса Анализ • Проектирование • Программирование • Докумен …   Википедия

  • Behavior Driven Development — (BDD) (deutsch Verhaltensgetriebene Softwareentwicklung) ist eine Technik der Agilen Softwareentwicklung, welche die Zusammenarbeit zwischen Qualitätsmanagement und Business Analyse in Softwareentwicklungsprojekten stärkt. Beim Behavior Driven… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”