Как написать тест mockito для почтового запроса - PullRequest
2 голосов
/ 20 марта 2020

Эта функция используется для обновления сведений о пользователе в базе данных. Может ли кто-нибудь помочь мне написать контрольные примеры для этой функции.

@RequestMapping(value = "/updateDetails", method = RequestMethod.POST)
    public String updateVendorDetails(@Valid @ModelAttribute("users") Users users, BindingResult result,Model model) {
        logger.info("{}.{}",new VendorController().getClass().getPackageName(), new VendorController().getClass().getName());

        if(result.hasErrors()) {
            model.addAttribute("edit","edit");
            logger.warn("Function: updateVendorDetails(), Information: Error while updating vendor details");
            return register.toString();
        }
        userDao.updateVendorDetails(users);
        logger.info("Function: updateVendorDetails(), Information: Vendor details updated successfully");
        return vendor.toString();
    }

Обновление

Код:

mock Mvc .perform (post ("/updateDetails").accept(MediaType.TEXT_HTML).params(params)).andExpect(status().isOk());

Результирующая ошибка:

Это говорит о том, что метод post запрещен и мой тест не пройден

Это мой тестовый класс

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class TestVendorPage {

    @Autowired
    private WebApplicationContext context;

    private MockMvc mockMvc;

    @Before
    public void setUp() {
        mockMvc = MockMvcBuilders.webAppContextSetup(context).apply(springSecurity()).build();
    }




    @WithMockUser(roles = "VENDOR")
    @Test
    public void testIfUpdateEdtailsIsAvailableOnlyForVendor() throws Exception {

        MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
        params.add("firstName", "vinod");
        params.add("lastName", "babu");
        params.add("contactNumber", "9952016709");
        mockMvc.perform(post("/updateDetails").accept(MediaType.TEXT_HTML).params(params)).andExpect(status().isOk());
    }


}

Ответы [ 2 ]

3 голосов
/ 20 марта 2020

По поводу вашего обновления:

  1. Спасибо за разъяснение вашего поста с указанием c ошибка / спецификация c проблема.

  2. Для указанной ошибки c - HTTP 403: Forbidden - это должно решить проблему:

    Модульный тест Springboot Mock Mvc возвращает 403 Запрещено

Я думаю, что проблема заключается в том, что объект "mock Mvc" не является autowired.mock Mvc объект должен загружаться из WebApplicationContext до запуска программы.

Пожалуйста - ПОЖАЛУЙСТА - рассмотрите одну или несколько ссылок, которые я цитировал выше.

Я нашел все три сайта очень ценными ресурсами. Время, проведенное с этими уроками, вам очень поможет!

0 голосов
/ 20 марта 2020

Я не знаю почему, но когда я удаляю функцию springSecurity, кажется, все работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...