私は以下のクラスのシナリオを持っています。MyTestableClass のテスト中に、Autowired クラスを処理したいと考えています。AutoWired クラスの変数のみをモックしたいと思います。
サンプルクラスは以下の通りです -
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();
}
}
たとえば、コンソールは、true を返す前に「Inside Service クラス」を提供する必要があります。
前もって感謝します !