我正在使用Springh编写此路由并使用auth0进行授权 . 它应该在 Headers 中没有授权时返回401,并且当 Headers 中有一个有效的auth0 id_token时返回200 . 为它编写单元测试的正确方法是什么?
要在 Headers 中获得授权,我应该获得真正的id_token,还是有办法模拟一个?如果我应该使用真正的id_token,将它作为字符串存储在测试代码中是否合适,还是应该将其存储在其他地方(例如作为环境变量)以保护它?
Spring有 @WithMockUser 注释,以帮助测试需要经过身份验证的用户的方法 . 这可以使用如下:
@WithMockUser
@RunWith(SpringRunner.class) @SpringBootTest public class MyControllerTests { private MockMvc mockMvc; @Before public void setup() { mockMvc = MockMvcBuilders .webAppContextSetup(context) .apply(springSecurity()) .build(); } @Test @WithMockUser(roles = "ADMIN") public void shouldUpdateEntry() throws Exception { .... } }
请注意,这不会测试身份验证本身 . @WithMockUser 意味着用于测试使用给定权限运行的方法 .
1 回答
Spring有
@WithMockUser
注释,以帮助测试需要经过身份验证的用户的方法 . 这可以使用如下:请注意,这不会测试身份验证本身 .
@WithMockUser
意味着用于测试使用给定权限运行的方法 .