Я пытаюсь протестировать сервис, который внедряет свои зависимости с помощью @Inject. Но по какой-то причине я не могу использовать InjectMocks для других зависимостей внутри теста. Пример моего сервиса:
@Component
public class UpdateFileService {
@Inject
FolderRepository folderRepository;
@Inject
PermissionDTOConverter permissionConverter;
}
PermissionDTOConverter — это класс, который я не хочу заглушать.
Поэтому я хочу, чтобы он работал следующим образом:
public class UpdateFileSecurityServiceTest {
@Mock
private FolderRepository folderRepository;
@InjectMocks
private PermissionDTOConverter permissionDTOConverter;
@InjectMocks
private UpdateFileSecurityService service;
}
И всякий раз, когда я пытаюсь протестировать метод, он выдает исключение NullPointerException, потому что говорит, что DTO не существует. Но если я использую внедрение конструктора вот так>
public class UpdateFileSecurityServiceTest {
@Mock
private FolderRepository folderRepository;
@InjectMocks
private PermissionDTOConverter permissionDTOConverter;
@InjectMocks
private UpdateFileSecurityService service;
@Before
public void setUp() {
service = new UpdateFileSecurityService(folderRepository, permissionDTOConverter);
}
}
Подробнее здесь: https://stackoverflow.com/questions/789 ... ctingmocks