当前位置: 首页 > 知识库问答 >
问题:

如何为发布请求编写mockito测试

杨经武
2023-03-14

此函数用于更新数据库中的用户详细信息。有人能帮我写这个函数的测试用例吗。

@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();
    }

更新

代码:

mockMvc。执行(post(“/更新详细信息”)。接受(MediaType.TEXT\u HTML)。参数(params))。andExpect(状态()。isOk());

产生的错误:

这上面说帖子法是禁止的我的测试失败了

这是我的测试课

@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());
    }


}

共有1个答案

孙化
2023-03-14

关于您的更新:

>

对于那个特定的错误-HTTP 403:禁止-这应该可以解决问题:

单元测试Springboot MockMvc返回403禁止

我认为问题是发生在"mockMvc"对象不是autowired.mockMvc对象应该加载从WebApplication Context在程序运行之前。

请-请-考虑查看我上面引用的一个或多个链接。

  • baeldung.com:Spring Boot中的测试
  • spring.io:测试Web层
  • mkyong.com:Spring REST集成示例

我发现这三个网站都是非常有价值的资源。花时间学习这些教程会对你有很大帮助!

 类似资料:
  • 我需要帮助如何在我的服务器(index.js)中正确编写GET和POST请求,以及如何在应用程序中正确编写fetch。js。 我阅读了Stackoverflow上的线程,并搜索了有关如何编写请求和获取的信息,但我发现如何将示例添加到自己的代码中非常困难。我已经尝试了三个星期不同的解决方案,但都一事无成。所以,请帮忙。我觉得这应该没那么难,但出于某种原因确实如此。除了这里,我没有人需要帮助。 我正在

  • 有人能给我解释一下如何为下面这样的apex触发器编写测试类吗? 我是Salesforce的新手。有人帮助我如何为上述触发器编写顶点类(测试类)吗? AccountBrowseExtensionTesttestAccountBrowseSystem。DmlException:插入失败。第0行第一个异常;第一个错误:FIELD\u CUSTOM\u VALIDATION\u EXCEPTION,Cit

  • 我在java中使用mockito编写单元测试。 这就是我要测试的声明。 电影是电影名称的集合,是识别电影的关键。 我嘲笑了守望者班 Mockito.when(watcher.watch(Matchers.any(Set.class))) “thenReturn”中包括什么??

  • 我怎么可能在mockito,spring mvc环境中为boolean编写测试用例呢 例如,如下面的响应 我们可以这样编写测试用例, 对吧?但是,当我们得到如下回应时 我应该如何编写测试用例?

  • 问题内容: 我读了一些将jsons发布到服务器的示例。 有人说: OkHttp是Java提供的HttpUrlConnection接口的实现。它提供用于编写​​内容的输入流,并且不知道(或不在乎)内容的格式。 现在,我想用名称和密码的参数对URL进行常规发布。 这意味着我需要自己将名称和值对编码为流? 问题答案: 当前接受的答案已过期。现在,如果您想创建一个发布请求并向其中添加参数,则应该使用Mul

  • 我有一个javaScript代码,其中我发送了带有一些参数的http post。Post参数是一个类似于以下内容的json: 在JavaScript中,我只是打开request、设置头和发送参数。Post请求如下所示: 现在我需要在Java中进行相同的调用(由于一些内部POC需求)。为此,我做了以下几点: 但这给了我错误。 提前道谢。