gpt4 book ai didi

java - RestAssuredMockMvc 中注入(inject)身份验证

转载 作者:行者123 更新时间:2023-12-02 11:51:43 24 4
gpt4 key购买 nike

我正在为具有注入(inject)身份验证参数的 Controller 编写单元测试

 @RequestMapping(value = Mappings.PEOPLE, method = RequestMethod.POST)
public ResponseEntity<?> people(HttpServletRequest request, Authentication authentication, @RequestBody Person person) {
...
}

我不知道如何在测试中设置身份验证。这是我到目前为止所拥有的。

@RunWith(SpringRunner.class)
public class PeopleTest {

@Before
public void setUp() {
RestAssuredMockMvc.standaloneSetup(new PeopleController());
}

@Test
public void testKanbanOnlyScan() {
SecurityContextHolder.getContext().setAuthentication(new UsernamePasswordAuthenticationToken("username", "password"));
given()
.contentType(MediaType.APPLICATION_JSON_VALUE)
.body(new Person("Davey Jones"))
.when()
.post("/people")
.then()
.statusCode(is(HttpStatus.OK.value()));
}
}

但是在测试期间我的 Controller 中的身份验证为空。如何将身份验证注入(inject) Controller ?

最佳答案

您可以使用 MockMVC 来测试您的 Controller ,例如:

@Autowired
MockMVC mockMvc;
mockMvc.perform("/your-controller-path").with(authentication(authentication))

有关更多详细信息,请查看 spring 文档

preview-spring-security-test-web-security

关于java - RestAssuredMockMvc 中注入(inject)身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47838161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com