JEE: Arquillian

Überblick

# This code block gets replaced with the TOC

Arquillian ist ein Framework für Integration Tests. Es bietet die Möglichkeit für bestimmte Testfälle ein Deployment bereitzustellen, was die nur die relevanten Klassen besitzt. Diese sogenannten Micro-Deployments können mittels Arquillian einfach definiert werden und dann in einem embedded or existierenden Container eingesetzt werden. In diesem werden dann die Testfälle durchgeführt. Zur Vollständigkeit ist noch erwähnt, dass Arquillian auch für client-seitige Tests verwendet werden kann, in solchen Fällen ist ein Deployment nicht notwendig. Als Deployment-Format stehen verschiedene zur Verfügung, z.B. Jar, War, Ear etc. Genauso stehen als Container verschiedene Alternativen zur Verfügung. Arquillian bietet hierfür die gängigsten Adapter an, siehe [2].

[Read More]

Nodejs HTTP-Server

Schreibt man eine Client-Anwendung, die mit einem Server kommunizieren soll, weclhes zum Testing nicht zur Verfügung steht, muss man schauen, wie man die Kommunikation simulieren kann. Am besten wäre eine Test-Implementierung des Servers, der die Spezifikation/API unterstützt. Bevor die Spezifikation zum Test implementiert werden kann, muss jedoch die Grundfunktionalität (HTTP) des Server implementiert werden. Um sich das zu ersparen, kann man z.B. nodejs verwenden.

var http = require('http'),
	url = require('url');

var results = \["status=OK&desc=Alles paletti&url=http://www.heise.de/",
			   "status=NOK&desc=Oh, problem&url="\];
	
var httpServer = http.createServer();

httpServer.on('request', function(request, response) {
	// Parse the entire URI to get just the query
	var query = url.parse(request.url, true).query;
	// parse the query parameters
	var param1 	= query\['p1'\];
	var param2	= query\['p2'\];
	var param3	= query\['p3'\];
	
	// Do something with the parameters to generate the response.....
	
	// return random response
	response.writeHead(200, {'Content-Type': 'text/plain'});
	var rnd = Math.floor(Math.random() \* results.length)
	response.end(results\[rnd\]);
});

httpServer.listen(1337, '127.0.0.1');

console.log('- Server running at http://127.0.0.1:1337/');

Wie man sehen kann, wird in wenigen Zeilen JavaScript ein HTTP-Server geschrieben, der auf den “request”-Event horcht. Bei jedem Request werden die Parameter ermittelt und die Response generiert. Nodejs bietet verschiedene Events an, für die ein Callback-Funktion registriert werden kann. Beim HTTP-Server sind das z.B.: request, connection, close. Weitere Details sind in der Docu zu finden.

[Read More]
js  test  web