Я создал один параметризованный класс, который принимает два параметра. Один - это тип строки, а другой - тип класса List of Abstract. Конструктор класса выглядит следующим образом:
public TestService(Tenant tenant, List<AbstractService> testServices) {
testServicesMap = testServices.stream().collect(Collectors.toMap(AbstractService::getType, Function.identity()));
}
Теперь я хочу написать тестовый пример Junit для этого класса, и для этого у меня есть следующий фрагмент кода.
@Mock
protected Tenant tenant;
@Mock
private List<AbstractService> testServices;
@InjectMocks
private TestService testService;
@Before
public void setup() {
testServices.add(new JobService(new JobEventService()));
testServices.add(new ApplicationService(new ApplicationEventService()));
testServices.add(new UserService(new UserEventService()));
// notificationService = new NotificationService(tenant, notificationServices);
// MockitoAnnotations.initMocks(notificationService);
}
Я также попытался включить две закомментированные строки, но теперь это работает. Следующая ошибка, которую система выдает при запуске.
org.mockito.exceptions.base.MockitoException:
Cannot instantiate @InjectMocks field named 'notificationService' of type 'class com.test.TestService'.
You haven't provided the instance at field declaration so I tried to construct the instance.
However the constructor or the initialization block threw an exception : `null`.
Может ли кто-нибудь помочь в этом?