So habe ich diesen GWT-Code, der RPC-Anforderungen verarbeitet, die Zustände (bereit, warten, Fehler usw.) verwalten. Und ich würde gerne überprüfen, ob die Klasse ihre Zustände nach jedem Aufruf korrekt ändert, Antwortvariablen setzen usw.Mocking innerhalb einer Java-Klasse
Nun, wie sollte ich fortfahren, das zu testen, ohne tatsächliche Anfragen an den Server (die in Fehler in der Server es selbst).
Ich denke, ich könnte die Anfrage Callback-Klasse irgendwie verspotten, aber es ist für den Test unsichtbar.
Ich bin verloren, Hilfe!
Beispiel des Codes unten (Ich werde die ganze Sache später veröffentlichen, falls jemand will).
public class RPCHandler
{
public RPCHandler(String method,String[] argumentsName,
String[][] argumentsValues)
{
this.method = method;
this.argumentsName = argumentsName;
this.argumentsValues = argumentsValues;
}
/**
* Method that creates a RPC request using JSON in a POST
*
*/
public void rpcRequest(){
if(currentState == HandlerState.WAITING_RESPONSE)return;
currentState = HandlerState.WAITING_RESPONSE;
// Append watch list stock symbols to query URL.
url = URL.encode(url);
url += "action=";
url += method;
// Send request to server and catch any errors.
RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, url);
String requestData = parseToJSON(argumentsName, argumentsValues);
try{
Request request = builder.sendRequest(requestData, new RequestCallback()
{
public void onError(Request request, Throwable exception)
{
setRPCException(new Exception("Error while saving. Action="+method));
setCurrentState(HandlerState.ON_ERROR);
}
//Few other error, response received hander methods after this point.
}
}
Verwendet, gearbeitet, liebte es: D – Diones