代码之家  ›  专栏  ›  技术社区  ›  Robin

如何在报头中为具有授权的路由/端点编写单元测试?

  •  0
  • Robin  · 技术社区  · 7 年前

    我使用Spring Boot编写这个路由,并使用auth0进行授权。 它应该在头中没有授权时返回401,在头中有有效的auth0 id_令牌时返回200。为它编写单元测试的正确方法是什么?

    要在头中获得授权,我应该获得一个真正的id_令牌,还是有办法模拟一个?如果我应该使用一个真正的id_标记,那么在测试代码中将它作为字符串存储是合适的,还是应该将它存储在其他地方(例如作为环境变量)来保护它?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Ervin Szilagyi    7 年前

    春天有 @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 {
            ....
        }
    }
    

    @使用mockuser 用于测试以给定权限运行的方法。