jMock Tutorial für Anfänger mit Test Project
Was ist jMock?
jMock ist eine Bibliothek, die hilft, testgetriebene Entwicklung von Java-Code mit Mock-Objekten zu erstellen. Mit Hilfe von jMock Wir können die Klasse unabhängig testen, die von einer anderen Klasse abhängt.
Angenommen, wenn eine Klasse von einer anderen Klasse abhängt, können wir einen Schein einer abhängigen Klasse erstellen und die anfänglichen Eigenschaften festlegen, um die abhängige Klasse zu testen.
jMock-Tutorial-Beispiel:
Hinweis: Wir verwenden die Eclipse-Plattform für dieses Testprojekt. Sie können Eclipse von herunterladen Hier.
Stelle sicher Java SE-Laufzeitumgebung bereits installiert ist, damit das Eclipse-Installationsprogramm die Installation starten kann.
Erstellen Sie ein Testprojekt in Java mit dem Namen Test project. Fügen Sie die folgenden JAR-Dateien in seinen Klassenpfad ein:
- jmock-2.5.1.jar
- hamcrest-core-1.1.jar
- hamcrest-bibliothek-1.1.jar
- JUnit-4.5.jar
Erstellen Sie eine Schnittstelle mit dem Namen ITestInterface. Geben Sie den folgenden Code in diese Schnittstelle ein:
Pakettest;
öffentliche Schnittstelle ITestInterface
{
öffentlicher int test();
}
Erstellen Sie TestClass1. Fügen Sie den folgenden Code in diese Klasse ein
Pakettest;
Die öffentliche Klasse TestClass1 implementiert ITestInterface
{
öffentlicher int-test()
{
Rückkehr 3;
}
}
Erstellen Sie TestClass2.Fügen Sie den folgenden Code in diese Klasse ein
Pakettest;
öffentliche Klasse TestClass2
{
ITestInterface testInterface;
öffentlich TestClass2()
{
this.testInterface=testInterface;
}
public int testMock()
{
int result=testInterface.test();
Ergebnis zurückgeben;
}
}
Erstellen Sie TestClass3.Fügen Sie den folgenden Code in diese Klasse ein
Pakettest;
import junit.framework.Assert;
import org.jmock.Mockery;
import org.junit.Test;
öffentliche Klasse TestClass3
{
@Prüfen
public void testJmock()
{
org.jmock.Mockery TestInterfaceMock= new Mockery();
final ITestInterface testInterface=TestInterfaceMock.mock(ITestInterface.class);
TestInterfaceMock.checking (neu org.jmock.Expectations()
{{
oneOf(testInterface).test();
will(returnValue((3)));
}});
int j=testInterface.test();
System.out.println(j);
Assert.assertEquals(j, 3);
}
}
Wie aus obigem Beispiel ersichtlich ist, implementiert TestClass1 die Schnittstelle ITestInterface. Wenn wir hier beobachten, dass TestClass2 von TestClass1 abhängig ist. Um es also komponententestbar zu machen, machen wir kein neues von TestClass1 in TestClass2. Wir verwenden ein Scheinobjekt.
In TestClass3 erstellen wir das Mock-Objekt von ITestInterface. Wir setzen die Erwartung, dass dieses Objekt 3 zurückgibt, wenn es während des Komponententests von TestClass2 aufgerufen wird. Zum Beispiel in TestClass3, wenn wir einen Aufruf an testInterface.test() machen geht zu TestClass2. In TestClass2, wenn wir testInterface.test() aufrufen, wird der Wert vom Scheinobjekt zurückgegeben. Auf diese Weise testen wir TestClass2 unabhängig.
Um das obige Beispiel zu testen, klicken Sie mit der rechten Maustaste auf TestClass3 und wählen Sie Als Junit-Test ausführen aus.
Es wird der folgende Bildschirm angezeigt:
Testfall erfolgreich ausgeführt!
5 Responses
Kann ich wissen, wie testclass2 von testclass1 abhängig ist?
Vielen Dank, dass Sie die wertvollen Informationen über jmock geteilt haben! Es war eine schöne Lektüre!
Gern geschehen, Tanuja 🙂 Ich helfe gerne!
Netter Post
Ich danke Ihnen 🙂