У меня реализован шаблон фабрики, и я хотел это проверить.За исключением того, что поля в этом заводском методе не получают автосвязь.Кажется, что атрибут @Autowired в фабричном классе остается нулевым. Я не могу использовать аннотацию @SpringBootTest из-за загружаемого затем файла конфигурации цепочки блоков
Ниже приведен код фабрики сервисов, парсерный завод автоматически подключается в тесте.Проблемы с автопроводными полями парсерфабрики
@Service
@Slf4j
public class ParserFactory {
@Autowired
OsirisParser osirisParser;
public Parser getParser(String system) {
if (system == null) {
return null;
}
if (system.equalsIgnoreCase("Progress")) {
return ProgressCreateService();
}
if (system.equalsIgnoreCase("Osiris")) {
log.debug("Osiris parsen creëren");
return OsirisCreateService();
}
return null;
}
public OsirisParser OsirisCreateService() {
return osirisParser;
}
public OsirisParser ProgressCreateService() {
return new OsirisParser("ProgressParser");
}
Тест
@RunWith(SpringRunner.class)
public class FactoryTest {
@Mock
ParserFactory serviceCallFactory;
@Test
public void testCreateOsirisServiceSuccesFull() {
Parser serv = serviceCallFactory.getParser("Osiris");
assertThat(serv, instanceOf(OsirisParser.class));
}
@Test
public void testCreateProgressServiceSuccesFull() {
Parser serv = serviceCallFactory.getParser("Progress");
assertThat(serv, instanceOf(ProgressParser.class));
}
@Test
public void testCreateProgressServiceUnSuccessFull() {
Parser serv = serviceCallFactory.getParser("Progrddess");
assertThat(serv, is(not(instanceOf(OsirisParser.class))));
}
@Test
public void testCreateWhenStringIsNotCorrect() {
Parser serv = serviceCallFactory.getParser("0$iri$");
assertThat(serv, is(nullValue()));
}
@Test
public void testCreateWhenStringIsNull() {
Parser serv = serviceCallFactory.getParser("");
assertThat(serv, is(nullValue()));
}
}