Ich habe unter Klasse Szenario. Beim Testen von MyTestableClass möchte ich die Autowired-Klasse verarbeiten. Ich möchte nur Variable in AutoWired Klasse spotten.Mockito Mock Run Autowired Klasse Objekt
Beispielklasse ist wie unten-
public class MyTestableClass {
@Autowired
private MyServiceClass service;
public void handleError(){
...
service.doSomething();
}
}
public class MyServiceClass {
@Autowired
private JMSChannel channel;
public void doSomething(){
System.out.println("Inside Service class");
.....
channel.isAvailable();
.....
}
}
@RunWith(MockitoJUnitRunner.class)
public class MyTestableClassTest {
private MyTestableClass testClass= new MyTestableClass();
private JMSChannel channel;
@Before
public void init(){
channel= mock(JMSChannel.class);
when(channel.isAvailable()).thenReturn(Boolean.TRUE);
}
@Test
public void test(){
testClass.handleError();
}
}
Zum Beispiel Console me "Inside Service-Klasse" geben sollte, bevor wahr zurück.
Vielen Dank im Voraus!
+1, Wie erstelle ich eine Instanz von Autowired Service? Ich will es nicht verspotten, um etwas zu tun(). Vielen Dank! –
Im Idealfall von der Feldinjektion zur Konstruktorinjektion wechseln und dann den Schein an den Konstruktor übergeben. – chrylis
@chrylis, darf ich zum Beispiel/code fragen? –