<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=EasyMock</id>
	<title>EasyMock - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=EasyMock"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=EasyMock&amp;action=history"/>
	<updated>2026-05-27T18:35:25Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=EasyMock&amp;diff=1515649&amp;oldid=prev</id>
		<title>imported&gt;SchlurcherBot: Bot: http → https</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=EasyMock&amp;diff=1515649&amp;oldid=prev"/>
		<updated>2026-02-13T20:56:22Z</updated>

		<summary type="html">&lt;p&gt;Bot: http → https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Software&lt;br /&gt;
|Name                  =&lt;br /&gt;
|Logo                  = [[Datei:Easymock.png|EasyMock Logo]]&lt;br /&gt;
|Screenshot            = &lt;br /&gt;
|Beschreibung          = &lt;br /&gt;
|Maintainer            = Tammo Freese, Henri Tremblay&lt;br /&gt;
|Hersteller            = [[Oldenburger Forschungs- und Entwicklungsinstitut für Informatik-Werkzeuge und -Systeme|OFFIS]], Tammo Freese, Henri Tremblay&lt;br /&gt;
|Management            = &lt;br /&gt;
|Erscheinungsjahr      = &lt;br /&gt;
|AktuelleVersion       = &amp;lt;!-- Wikidata --&amp;gt;&lt;br /&gt;
|AktuelleVersionFreigabeDatum = &amp;lt;!-- Wikidata --&amp;gt;&lt;br /&gt;
|AktuelleVorabVersion  = &lt;br /&gt;
|AktuelleVorabVersionFreigabeDatum = &lt;br /&gt;
|Betriebssystem        = [[Plattformübergreifend]]&lt;br /&gt;
|Programmiersprache    = [[Java (Programmiersprache)|Java]]&lt;br /&gt;
|Kategorie             = [[Softwaretest|Test]]-[[Framework]]&lt;br /&gt;
|Lizenz                = [[Apache-Lizenz]] 2.0&lt;br /&gt;
|Deutsch               = &lt;br /&gt;
|Website               = [https://easymock.org/ easymock.org]&lt;br /&gt;
|Dateien               = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;EasyMock&amp;#039;&amp;#039;&amp;#039; ist eine [[Programmbibliothek]] zum Erstellen von [[Mock-Objekt]]en für [[Modultest|Unit-Tests]] von [[Java (Programmiersprache)|Java]]-Programmen.&lt;br /&gt;
&lt;br /&gt;
Im [[Unit-Test]] sollen einzelne &amp;#039;&amp;#039;Testobjekte&amp;#039;&amp;#039; (meist [[Klasse (Objektorientierung)|Klassen]] oder [[Objektorientierte Programmierung#Methoden|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-Objekt]]e ersetzt werden.&lt;br /&gt;
Die Mock-Objekte fungieren dabei als Platzhalter für die echten Objekte.&lt;br /&gt;
&lt;br /&gt;
== Funktionalität ==&lt;br /&gt;
&amp;#039;&amp;#039;EasyMock&amp;#039;&amp;#039; ist die erste [[Programmbibliothek]], die die dynamische Erzeugung von Mock-Objekten basierend auf deren Schnittstelle unterstützt.&amp;lt;ref&amp;gt;[https://easymock.org/ &amp;#039;&amp;#039;EasyMock Homepage&amp;#039;&amp;#039;.]&amp;lt;/ref&amp;gt; Es wurde erstmals auf der [[OOPSLA]] im Jahre 2001 vorgestellt.&lt;br /&gt;
Das Verhalten eines dynamischen Mock-Objekts wird nicht in einer eigenen Klasse programmiert, sondern vor dem Unit-Test aufgezeichnet.&lt;br /&gt;
Der Ansatz einer dynamischen Erzeugung von Mock-Objekten bietet einige Vorteile gegenüber der statischen Programmierung von Mock-Klassen und -Objekten.&lt;br /&gt;
&lt;br /&gt;
* Es müssen keine [[Klasse (Objektorientierung)|Klassen]] von Hand geschrieben werden.&lt;br /&gt;
* Es muss kein [[Quellcode]] der Mock-Klassen mit denen der echten Klassen [[synchron]] gehalten werden.&lt;br /&gt;
* Dynamische Mock-Objekte sind sicherer gegenüber [[Refactoring]]&lt;br /&gt;
&lt;br /&gt;
Zur Benutzung von EasyMock werden folgende Schritte durchlaufen:&lt;br /&gt;
# Mock-Objekt von der Klasse bzw. Schnittstelle, die simuliert werden soll, erzeugen und dem zu testenden Objekt übergeben.&lt;br /&gt;
# Erwartetes Verhalten aufzeichnen (basierend auf dem [[Fluent Interface|Fluent-Interface]]-[[Entwurfsmuster]]).&lt;br /&gt;
# Mock-Objekt auf Wiedergabemodus (&amp;#039;&amp;#039;Replay&amp;#039;&amp;#039;) stellen.&lt;br /&gt;
# Verifizieren (&amp;#039;&amp;#039;verify(mock)&amp;#039;&amp;#039;), ob das Mock-Objekt auch so benutzt wurde, wie in Schritt zwei spezifiziert.&lt;br /&gt;
&lt;br /&gt;
== Typisches Beispiel ==&lt;br /&gt;
Durch einen Unit Test soll das Verhalten der Service Klasse &amp;#039;&amp;#039;KundeService&amp;#039;&amp;#039; verifiziert werden. Diese Klasse hat eine [[Referenz (Programmierung)|Referenz]] zu einer Hilfsklasse &amp;#039;&amp;#039;KundeDAO&amp;#039;&amp;#039;, welche die Kundendaten aus einer [[Datenbank]] liest. Das [[Data Access Object]] &amp;#039;&amp;#039;KundeDAO&amp;#039;&amp;#039; muss durch ein [[Mock-Objekt]] ersetzt werden, um die Klasse KundeService isoliert testen zu können.&lt;br /&gt;
&lt;br /&gt;
Für den ersten Schritt wird die setUp()-Methode des [[JUnit|JUnit-Tests]] überschrieben:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  private IKundeDAO kundeDAOMock;&lt;br /&gt;
  private KundeService kundeService;&lt;br /&gt;
&lt;br /&gt;
  @Before&lt;br /&gt;
  protected void setUp() throws Exception {&lt;br /&gt;
    super.setUp();&lt;br /&gt;
&lt;br /&gt;
    //Schritt 1: Mock-Objekt erstellen&lt;br /&gt;
    kundeDAOMock = EasyMock.createMock(IKundeDAO.class);&lt;br /&gt;
&lt;br /&gt;
    // KundenService erzeugen&lt;br /&gt;
    kundeService = new KundeService();&lt;br /&gt;
&lt;br /&gt;
    // KundenService mit Mock-Objekt versorgen&lt;br /&gt;
    kundeService.setKundeDAO(kundeDAOMock);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Schritte 2 und 3 werden in der Test-Methode ausgeführt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  @Test&lt;br /&gt;
  public void testKundenLesen() {&lt;br /&gt;
&lt;br /&gt;
    //Schritt 2: Erwartetes Verhalten vom KundeDAO aufzeichnen&lt;br /&gt;
&lt;br /&gt;
    // erwartetes Ergebnis erstellen&lt;br /&gt;
    List&amp;lt;Kunde&amp;gt; list = new ArrayList&amp;lt;Kunde&amp;gt;();&lt;br /&gt;
    list.add(new Kunde(&amp;quot;Müller&amp;quot;));&lt;br /&gt;
    list.add(new Kunde(&amp;quot;Meier&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    // erwarteten Methodenaufruf am Mock-Objekt mit Ergebnis aufzeichnen&lt;br /&gt;
    EasyMock.expect(kundeDAOMock.findAll()).andReturn(list);&lt;br /&gt;
&lt;br /&gt;
    //Schritt 3: Aufnahme beendet!&lt;br /&gt;
    EasyMock.replay(kundeDAOMock);&lt;br /&gt;
&lt;br /&gt;
    //Eigentlichen Test durchführen&lt;br /&gt;
    kundeService.leseAlleKunden();&lt;br /&gt;
&lt;br /&gt;
    //Prüfen, dass alle erwarteten Methoden am Mock-Objekt aufgerufen wurden.&lt;br /&gt;
    EasyMock.verify(kundeDAOMock);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Alternativen ==&lt;br /&gt;
Als Alternative zu EasyMock existieren die folgenden [[Programmbibliothek]]en, die ebenfalls das dynamische Erzeugen von Mock-Objekten erlauben:&lt;br /&gt;
* [[jMock]]&lt;br /&gt;
* [[Mockito]]&lt;br /&gt;
* [[PowerMock]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=David Astels&lt;br /&gt;
   |Titel=Test Driven Development: A Practical Guide&lt;br /&gt;
   |Verlag=Prentice Hall International&lt;br /&gt;
   |Ort=&lt;br /&gt;
   |Jahr=2003&lt;br /&gt;
   |ISBN=0-13-101649-0}}&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Vincent Massol, Ted Husted&lt;br /&gt;
   |Titel=JUnit in Action&lt;br /&gt;
   |Verlag=Manning&lt;br /&gt;
   |Ort=&lt;br /&gt;
   |Jahr=2003&lt;br /&gt;
   |ISBN=1-930110-99-5}}&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Johannes Link&lt;br /&gt;
   |Titel=Softwaretests mit JUnit&lt;br /&gt;
   |Verlag=Dpunkt Verlag&lt;br /&gt;
   |Ort=&lt;br /&gt;
   |Jahr=2005&lt;br /&gt;
   |ISBN=3-89864-325-5}}&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Michael Hüttermann&lt;br /&gt;
   |Titel=Agile Java-Entwicklung in der Praxis&lt;br /&gt;
   |Verlag=O’Reilly&lt;br /&gt;
   |Ort=&lt;br /&gt;
   |Jahr=2007&lt;br /&gt;
   |ISBN=3-89721-482-2}}&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://easymock.org/ EasyMock Homepage] (englisch)&lt;br /&gt;
* [https://www.oopsla.org/2001/ OOPSLA] (englisch)&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Freies Programmierwerkzeug]]&lt;br /&gt;
[[Kategorie:Java-Programmierwerkzeug]]&lt;br /&gt;
[[Kategorie:Java-Bibliothek]]&lt;br /&gt;
[[Kategorie:Testsoftware]]&lt;/div&gt;</summary>
		<author><name>imported&gt;SchlurcherBot</name></author>
	</entry>
</feed>