2015-03-11 22 views

Odpowiedz

19

Aby określić wynik jak na Nagrany oczekiwanie, przypisać go (albo wartości zwrotu lub rzucać wyjątki) do pola result:

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

Próbowałem powyższego; ale zamiast kpić, wywołuje rzeczywisty konstruktor i tworzy obiekty zamiast :( –

+1

Możesz nagrać oczekiwanie tylko na metodę lub konstrukt, który został * wyszydzony *, zwykle oznacza to, że deklarujesz fałszywe pole lub fałszywy parametr używając jednego o kpiarskich adnotacjach, np. "@ @ Mocked'." W przeciwnym razie rzeczywista metoda lub konstruktor rzeczywiście zostanie wykonana. –

+0

Ok, ale teraz mam rację! dziękuję –

0

powinniśmy dodać klasę być makiety ed jako parametry w metodzie przypadku testowego. i używając wyniku, możemy kpić z wyniku metody.

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

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

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