Der MockServer dient zum Mocken von HTTP-Requests. Er ist extrem einfach aufgebaut und entsprechend anzuwenden.
Anwendung#
Der MockServer kann zum Test für Systeme verwendet werden, die konforme Netzwerkzugriffe durchführen. Also über die URL-Klasse mit openConnection eine Verbindung aufbauen.Neben dem genauen festlegen von Reihenfolge und Inhalt von HTTP-Requests in Testfällen, wird auch das Öffnen von Ports vermieden. Gerade auf Continuous-Integration-Servern ist dies von Vorteil, aufgrund von Sicherheit und der leichteren Konfiguration.
Beispiele#
JUnit-Test#
public class MockTest { @BeforeClass public static void beforeClass() { MapMockServer server = new MapMockServer(); server.add("test://localhost/test", "Test-Response"); ProtocolFactory.register(new MockProtocol("test", server)); } @Test public void test() throws IOException { URL url = new URL("test://localhost/test"); String response = IOUtils.readString(url.openStream()); Assert.assertEquals("Test-Response", response); } }
Einbinden und Download#
Der MockServer kann aus dem Intersult Maven Repository bezogen werden:<dependency> <groupId>com.intersult</groupId> <artifactId>testing</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
Hintergrund#
Die URL-Klasse wurde gerade in den letzten Java-Versionen ausgebaut, sodass eine Menge Protokolle und Details unterstützt werden, neben HTTP auch HTTPS, SSL, NTLM, File-, Zip-, Jar-Protokolle und viele mehr.Daher setzen immer mehr Technologien darauf auf und erleichtern einen einheitlichen Umgang mit Netzwerkverkehr.