2016-04-14 6 views
0
@RunWith(MockitoJUnitRunner.class) 
public class Test { 

    @Mock private A a; 
    @Spy private B b = new B(a); 

Wenn 'b' konstruiert ist, ist 'a' immer noch Null. Sobald der Komponententest auf einige Methoden trifft, ist 'a' nicht null.Wie man einen Spott in einen Spionenkonstruktor übergibt?

Gibt es eine Möglichkeit, einen Spion 'b' mit einem Nicht-Null-Spott 'a' zu konstruieren?

+2

Sie können es immer programmgesteuert anstelle von Anmerkungen tun. – biziclop

+1

Programmgesteuert hat es funktioniert. Ich bin neugierig, ob es eine Möglichkeit gibt, Anmerkungen zu machen. – Nelson

+1

Soweit ich das beurteilen kann, nein. "b" wird ausgefüllt, wenn die "Test" -Instanz erstellt wird, und "a" wird später von Mockito aufgefüllt. Das ist, es sei denn, Mockito ändert den Bytecode von 'Test', um die Instanzkonstruktion abzufangen. – biziclop

Antwort

1

Der einzige Weg ist es, es in eine annotierte Methode @Before zu verschieben.

Verwandte Themen