RestAssuredMockMvc是一个用于测试Spring MVC应用的库,它提供了一种流畅的DSL(领域特定语言)来描述HTTP请求和断言HTTP响应。在RestAssuredMockMvc中,你可以使用Spring Security的身份验证来进行测试。
以下是一个示例,展示如何在RestAssuredMockMvc中注入身份验证:
import static io.restassured.module.mockmvc.RestAssuredMockMvc.*;
import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.*;
// ...
@Autowired
private WebApplicationContext context;
@Before
public void setup() {
mockMvc = MockMvcBuilders
.webAppContextSetup(context)
.apply(springSecurity()) // 应用Spring Security
.build();
RestAssuredMockMvc.mockMvc(mockMvc);
}
@Test
public void testWithAuthentication() {
given()
.auth() // 使用身份验证
.with(user("username").password("password").roles("USER")) // 提供用户名、密码和角色
.when()
.get("/protected/resource")
.then()
.statusCode(200); // 断言响应状态码为200
}
在这个示例中,我们首先在setup
方法中配置了MockMvc实例,应用了Spring Security。然后,在测试方法testWithAuthentication
中,我们使用了.auth().with(user("username").password("password").roles("USER"))
来提供身份验证信息。这样,当我们发送GET请求到"/protected/resource"时,就会使用这个身份验证信息。
请注意,这个示例假设你已经在你的Spring MVC应用中配置了Spring Security,并且有一个受保护的资源"/protected/resource",需要"USER"角色才能访问。
领取专属 10元无门槛券
手把手带您无忧上云