0

私は以下のクラスのシナリオを持っています。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 クラス」を提供する必要があります。

前もって感謝します !

4

1 に答える 1