Прямым ответом на ваш вопрос было бы использовать @InjectMocks
на MainRouteBuilder
и позволить Mockito вводить @Mock
или @Spy
из CcsRouteCommonProperties
.Я надеюсь это краткое руководство объяснит это для вас.
Решение будет что-то вроде
@RunWith(MockitoJUnitRunner.class)
public class MainRouteBuilderTest extends ExchangeTestSupport {
@Mock
CcsRouteCommonProperties commonProps;
@InjectMocks
MainRouteBuilder routeBuilder;
@Override
public RoutesBuilder createRouteBuilder() throws Exception {
return routeBuilder;
}
@Test
public void shouldProcess() throws Exception {
when(commonProps.getSomething()).thenReturn(new Something());
}
}
Однако, если я на вашем месте, я бы избегал@Autowired
магия и использование четко определенных зависимостей с помощью инжектора конструктора.
Route Builder
public class MainRouteBuilder extends RouteBuilder {
private CcsRouteCommonProperties commonProps;
public MainRouteBuilder( CcsRouteCommonProperties commonProps) {
this.commonProps = commonProps;
}
/**
* {@inheritDoc}
*/
@Override
public void configure() throws Exception {
}
}
Тест
@RunWith(MockitoJUnitRunner.class)
public class MainRouteBuilderTest extends ExchangeTestSupport {
@Mock
CcsRouteCommonProperties commonProps;
@Override
public RoutesBuilder createRouteBuilder() throws Exception {
return new MainRouteBuilder(commonProps);
}
@Test
public void shouldProcess() throws Exception {
}
}