2015-03-11 9 views

Antwort

19

Um das Ergebnis für ein angeben bespielte Erwartung, weisen sie (entweder Werte Ausnahmen zurückzukehren oder werfen) zum result Feld:

new Expectations() {{ 
    someMockedMethodOrConstructorInvocation(...); result = new IllegalStateException(); 
}}; 
+0

Ich habe das obige versucht; aber anstatt sich zu ärgern, ruft es stattdessen den eigentlichen Konstruktor auf und erzeugt Objekte :( –

+1

Sie können nur eine Erwartung für eine Methode oder einen Konstruktor aufzeichnen, der * mocked * wurde; normalerweise bedeutet dies, dass Sie ein Mock-Feld oder einen Mock-Parameter mit einem angeben B. "@ Mocked". Andernfalls wird die eigentliche Methode oder der Konstruktor tatsächlich ausgeführt. –

+0

Ok, hab den Punkt jetzt! danke –

0

wir die Klasse hinzufügen sollten Mock sein Als Parameter in der Methode des Testfalls. Mit dem Ergebnis können wir das Ergebnis der Methode verspotten.

@Test 
    public void testCase(@Mocked final ClassToMock classToMockObject){ 

     new NonStrictExpectations() { 
       {  
     classToMockObject.methodToMock();result=NullPointerException(); 
      }}; 

     classToMockObject.methodToMock(); //calling the method to throw exception 
    }