2016-06-11 2 views
0

Ich benutze Easy Mock.Assert die getesteten Klassen internen Objekte

  1. Ich rufe eine Methode meiner tatsächlichen Klasse aus meiner Testklasse.
  2. Innerhalb dieser Methode erstelle ich ein Objekt namens 'A' im laufenden Betrieb mit Kind-Objekten.
  3. Ich übergebe das Objekt 'A' an einen Remote-Service und eine Ausgabe kehrt zurück.

Ich möchte diese zurückgegebene Ausgabe nicht aktivieren. (Das ist schon erledigt)

Ich will behaupten und sicherstellen, dass mein Objekt erfolgreich erstellt und verwittern es die relevanten untergeordneten Objekte enthält? Kann ich auf dieses Objekt von meiner Testklasse zugreifen, bevor oder nachdem es an den Remotedienst übergeben wurde.

Ist das möglich?

Vielen Dank :)

Antwort

2

Ja, es ist möglich. Verspotten Sie den Remote-Service und verwenden Sie eine capture, wenn Sie den Remote-Aufruf verspotten. Der tatsächliche Wert, der als Argument vom Capture übergeben wird, wird überprüft, und es wird überprüft, ob alle erwarteten Werte enthalten sind.

So etwas wie die folgende (nicht getestet):

Capture<A> capture = EasyMock.newCapture(); 
expect(mockRemoteService.someMethod(capture)).andReturn(whatever); 
... 

A a = capture.getValue(); 
// now check that a is OK. 
+0

Sie sind schnell und erstaunlich. Danke, Mann – nilan59