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

注销的Spring集成测试

公孙锋
2023-03-14

我有一个包含注销endpoint的Spring控制器

@PostMapping("/logout")
public ResponseEntity<Void> logout() {
    var request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
    try {
        request.logout();
        return new ResponseEntity<>(HttpStatus.OK);
    } catch (ServletException e) {
        log.error("Unable to logout");
        return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
    }
}

我如何使用mockmvc来测试这一点?

到目前为止,我只有这段代码,但我不知道如何测试该请求。已调用logout()(其效果如何?)。

mvc.perform(MockMvcRequestBuilders.post("/logout").principal(principal)).expect(??)

共有1个答案

阳英朗
2023-03-14

从这篇文章:

使用Spring Security测试包,尝试以下代码:

getMockMvc().perform(get("http://login.com").principal(principal))
        .andExpect(status().isOk()));

或:

getMockMvc().perform(get("http://your-url.com").principal(new UserPrincipal("TEST_USER_ID"))).andExpect(status().isOk()));
 类似资料:
  • 由于某种原因,当我单独使用@ComponentScan时,我的DAO没有加载。 我的道: 我的配置类(用嵌入的数据库覆盖数据源bean): 我的测试课: 我的理解是@ComponentScan应该能够找到MyDAO并加载它(TestConfig类中的数据源加载得很好)。但是,没有加载MyDAO。我得到了“org.springframework.beans.factory.NoSuchBeanDef

  • 问题内容: 是否可以检测PC何时注销。我需要开发一个应用程序,在PC注销之前,该应用程序将有关注销时间的文本文档写入文本。 问题答案: 对于.NET,请参见以下问题:[c#中是否有方法可以检测Windows关闭/注销并取消该操作(询问用户之后)http://codingdict.com/questions/159553)

  • 我想在Spring中测试注入依赖关系。 我想要一个这样的测试: 我尝试过使用ContextConfiguration和一个测试配置文件,但是测试失败了,我不想在测试中使用@autowired,我想创建我的类的一个实例,并且bean是自动autowired的。

  • 我已经建立了一个简单的Spring集成流程,该流程由以下步骤组成: 然后定期轮询一个rest api 对有效载荷做一些处理 并将其置于Kafka主题上。 请遵守以下代码: 这非常有效,然而,我正在努力想出一些好的测试。 我应该如何模拟外部RESTAPI

  • 问题内容: 我正在考虑为我的应用程序使用OAuth2。我尝试实现的体系结构如下: 我将拥有自己的(仅此)授权服务器 一些资源应用程序使用授权服务器验证对资源的访问 某些客户端应用程序(网络,移动设备)会将用户重定向到授权服务器进行身份验证,如果成功,则会在资源应用程序上使用api。 到目前为止,我已经成功实现了3个基本应用程序(1个身份验证服务器,1个资源服务器和1个客户端)之间的交互。我无法正常