Мое приложение работает нормально при запуске и сталкивается со странной проблемой при написании модульного теста для контроллера. Выглядит очень просто c и просто, но застряло здесь надолго. Я попробовал несколько вариантов, включая Mockito.Annotations, добавив Qualifier с именем бина, как упоминалось в Baeldung, но все равно получил ошибку basi c. Пожалуйста, помогите решить эту проблему.
Класс контроллера:
@Controller
@EnableAutoConfiguration
@Component
public class UserController {
private static final Logger LOG = LoggerFactory.getLogger(UserController .class);
@Autowired
@Qualifier("userService")
private userService userService;
}
Сервисный интерфейс:
public interface UserService {
public User getUserById(Integer userId);
}
Реализация сервиса
@Service
public class UserServiceImpl implements UserService {
private static final Logger LOG = LoggerFactory.getLogger(UserServiceImpl.class);
@Autowired
RecordService recordService;
@Autowired
UserDao userDao;
}
Тестовый класс
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = { UserController.class, UserService.class })
public class UserControllerTest {
private MockMvc mockMvc;
@InjectMocks
UserController userController;
@Mock
UserService userService;
@Before
public void setup() {
MockitoAnnotations.initMocks(this); // tried this to see if it helps
mockMvc = MockMvcBuilders.standaloneSetup(testController).build();
}
@Test
public void testWelcome() throws Exception {
// Mocking Controller
testController = mock(TestController.class);
this.mockMvc.perform(get("/")).andExpect(status().isOk()) .andExpect(view().name("Welcome to Test-Service."));
}
}
Мое приложение работает нормально при запуске и сталкивается со странной проблемой при написании модульного теста для контроллера. Выглядит очень просто c и просто, но застряло здесь надолго. Я попробовал несколько вариантов, включая Mockito.Annotations, добавив Qualifier с именем бина, как упоминалось в Baeldung, но все равно получил ошибку basi c. Пожалуйста, помогите в решении этой проблемы.
***************************
APPLICATION FAILED TO START
***************************
Field testService in com.test.controller.UserController required a bean of type 'com.service.UserService' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
- @org.springframework.beans.factory.annotation.Qualifier(value=testService)
Action:
Consider defining a bean of type 'com.service.UserService' in your configuration.