/
ZufarFaiz
/
SberProject
Обзор
Документация
Войти
/
ZufarFaiz
/
SberProject
Код
Запросы
1
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
src/test/java/com/example/JobExchange_app/controllerTests/JobControllerTest.java
112 строк
4 KB
Семейный
Написал тесты к контроллерам, сервисам. Пока только 47%. Дополню позже
01 июн 2025, 23:34
01 июн 2025, 23:34
dd92030
Код
Авторство
О чём код?
package com.example.JobExchange_app.controllerTests; import com.example.JobExchange_app.controller.JobController; import com.example.JobExchange_app.dto.JobDto; import com.example.JobExchange_app.service.JobService; import com.example.JobExchange_app.service.UserNameService; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import static org.hamcrest.Matchers.samePropertyValuesAs; import static org.mockito.Mockito.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import java.util.ArrayList; import java.util.List; import static org.hamcrest.Matchers.hasSize; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; @AutoConfigureMockMvc public class JobControllerTest { @Autowired private MockMvc mockMvc; @Mock private JobService jobService; @Mock private UserNameService recruiterServiceImpl; @InjectMocks private JobController controller; @BeforeEach void setUp() { MockitoAnnotations.openMocks(this); mockMvc = MockMvcBuilders.standaloneSetup(controller).build(); } @Test void viewVacancies_ShouldReturnViewWithVacanciesList() throws Exception { List<JobDto> vacancies = new ArrayList<>(); JobDto jobDto1=new JobDto(); JobDto jobDto2=new JobDto(); jobDto1.setTitle("Developer"); jobDto1.setDescription("Java Developer"); jobDto2.setTitle("Designer"); jobDto2.setDescription("UI/UX Designer"); vacancies.add(jobDto1); vacancies.add(jobDto2); when(jobService.viewVacancies()).thenReturn(vacancies); mockMvc.perform(get("/jobs/vacancies")) .andExpect(status().isOk()) .andExpect(view().name("viewVacancies")) .andExpect(model().attributeExists("vacancies")) .andExpect(model().attribute("vacancies", hasSize(2))) .andExpect(model().attribute("vacancies", vacancies)); } @Test void showVacancyForm_ShouldReturnFormWithEmptyJobDto() throws Exception { mockMvc.perform(get("/jobs/new")) .andExpect(status().isOk()) .andExpect(view().name("addVacancy")) .andExpect(model().attributeExists("jobDto")) .andExpect(model().attribute("jobDto", samePropertyValuesAs(new JobDto()))); verifyNoInteractions(jobService); verifyNoInteractions(recruiterServiceImpl); } @Test void deleteVacancy_ShouldCallServiceAndRedirect() throws Exception { Long jobId = 1L; doNothing().when(jobService).deleteVacancy(jobId); mockMvc.perform(delete("/jobs/job/{id}", jobId)) .andExpect(status().is3xxRedirection()) .andExpect(redirectedUrl("/recruiter/profile/")); verify(jobService).deleteVacancy(jobId); } @Test void publishVacancy_ShouldCallServiceAndRedirect() throws Exception { String username = "recruiter123"; JobDto jobDto = new JobDto(); jobDto.setTitle("Developer"); jobDto.setDescription("Java Developer"); when(recruiterServiceImpl.getUserName()).thenReturn(username); doNothing().when(jobService).publishVacancy(username, jobDto); mockMvc.perform(post("/jobs/new") .flashAttr("jobDto", jobDto)) .andExpect(status().is3xxRedirection()) .andExpect(redirectedUrl("/recruiter/profile/")); verify(jobService).publishVacancy(username, jobDto); } }