Я пытаюсь настроить некоторые тесты для своих сервисных слоев в Spring Boot.
Это прекрасно работает для нормальной службы:
@RunWith(SpringRunner.class)
public class ThreadSystemServiceImplTest {
/**
* This configures this test so that the correct implementation is tested
*/
@TestConfiguration
static class ThreadSystemServiceImplTestContextConfiguration {
@Bean
public ThreadSystemService testService() {
return new ThreadSystemServiceImpl();
}
}
@Autowired
private ThreadSystemService service;
@MockBean
private ThreadSystemRepository repository;
...
}
Однако у меня теперь есть сервисный наборпримерно так:
@Service
@Transactional
public class DrawingServiceImpl extends DrawingFunctions implements DrawingService {
....
}
DrawingFunctions имеет:
@Component
public class DrawingFunctions extends ToDoFunctions {
/**
* Logging Manager
*/
private static final Logger LOGGER=LogManager.getLogger();
@Autowired
private CommodityPartPORepository cppoRepository;
@Autowired
private WorkOrderService woService;
@Autowired
private InventorySearch inventorySearch;
...
}
Когда я пытаюсь запустить тест, я получаю ошибки об отсутствии соответствующих бинов из расширенных классов, таких как WorkOrderService
и InventorySearch
.Один из расширенных классов также имеет
@PersistenceContext
private EntityManager em;
, что создает дополнительные проблемы.
Я могу настроить bean-компоненты в своей тестовой конфигурации так же, как bean-компонент для ThreadSystemService
в рабочем примере.,Тем не менее, это будет довольно обширный список, почти все из которых мне не нужно будет ссылаться на эти тесты.Есть ли способ не включать расширенные классы для конкретного теста, или есть простой способ настроить этот вид теста?