2012-04-04 7 views
0

Ich möchte Rückgabewert einer Erwartung zu einer weiteren Erwartung hinzufügen. Ich habe ein m_accountProcessor-Objekt mit der Schnittstelle createAccount, um ein neues Konto zu erstellen und ein Kontoobjekt zurückzugeben. Ich möchte dieses Objekt speichern und es zu einer weiteren Erwartung für den Codefunktionsaufruf hinzufügen. Wie kann ich den Wert speichern?Speichern Rückgabewert einer Erwartung

 m_context.checking(new Expectations() {{ 

     one(m_accountProcessor).createAccount(CUSTOMER_DETAILS); 
     //How can I save the return value of createAccount's Account object 
     one(m_accountProcessor).encode(/*AccountObject*/); 
     }} 

Antwort

1

Vergiss nicht, du rufst nicht den richtigen Account-Prozessor an, du imitierst sein Verhalten. Erstellen Sie ein Konto Objekt im Test, können Sie zurück die mit der

will(returnValue(account)); 

Klausel, und erwarten, dass es bestanden haben, wieder auf das Konto Prozessor für die Codierung.

Bonusfragen, warum erhalten Sie ein Objekt aus dem Account-Prozessor und geben es dann zur Codierung zurück?

+0

Was ist der richtige Weg? – Poorna

+0

wie gesagt, erstellen Sie ein Kontoobjekt im Test. die Sie aus der CreateAccount-Erwartung zurückgeben können, dann können Sie überprüfen, ob das gleiche Objekt an den Codierungsaufruf übergeben wird. und Sie haben immer noch nicht die Bonusfrage beantwortet :) –

+0

Ich muss sowohl Konto-ID und codierte ID in meiner Tabelle speichern, um zu vermeiden, CPU intensiv kodierte ID jedes Mal zu berechnen, wenn es erforderlich ist. – Poorna

Verwandte Themen