Предположим, у меня есть ClassA с bean-компонентом, не основанным на инъекции, у которого есть метод процесса. Я хочу сделать для него модульное тестирование, но если не использовать @InjectMock CalssA & @Mock dependencyService и я вызываю метод процесса напрямую, компонент зависимости будет иметь значение null.
как мы вручную вводим такие не на основе конструктора в модульном тесте?
public class classA extends BaseClass {
@Autowired
private DependencyService dependencyService;
...
@Autowired
public ClassA(ConfigBeanFactory configBeanFactory) {
super(configBeanFactory);
}
@Override
public void process( String input ) {
…
ReturnObject someObj = Optional.ofNullable( dependencyService.someMethod( input ).orElseThrow( () -> new Exception( "xxx" ) );
...
}
}
@Configuration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:test-applicationContext.xml"})
public class ClassATest {
@Before
public void setUpBase() throws Exception {
...
}
@Test
public void testProcess() throws Exception {
ConfigBeanFactory configBeanFactory = AppContext.getApplicationContext().getBean( ConfigBeanFactory.class );
ClassA classA = new ClassA(configBeanFactory);
classA.process("someInputs"); <--- the dependencyService will be null, how we inject such dependency in this unit test?
}