首页 > 解决方案 > 如何在 @Before 方法中将 Principal 设置为 RestAssuredMockMvc 或 MockMvc?

问题描述

我在测试中使用 RestAssuredMockMvc 和 MockMvc。我已经创建了 Principal Bean。现在我需要在许多测试中注入这个 bean。

这个测试工作正常:

@Test
    public void principalTest() throws Exception {
        mockMvc.perform(get("/api/current")
                .principal(myPrincipalBean))
                .andExpect(status().isOk());
    }

但是我不需要.(myPrincipalBean))手动设置每个测试,我需要在 @Before 方法中将 myPrincipalBean 设置为 RestAssuredMockMvc 或 MockMvc 的一部分:

@Before
    public void settingUpTests() {
        RestAssuredMockMvc.standaloneSetup(
                new Controller(Service));
        mockMvc = MockMvcBuilders
                .webAppContextSetup(context)
                .build();
        RestAssuredMockMvc.mockMvc(mockMvc);
    }

我尝试使用RestAssuredMockMvc.principal(myPrincipalBean);,但 IDE 将此方法标记为已忽略。

那么如何将我创建的 Principal Bean 设置为 RestAssuredMockMvc 或 MockMvc?或者我怎样才能RestAssuredMockMvc.principal(myPrincipalBean)在不忽略的情况下使用方法?

标签: spring-mvc

解决方案


我找到了地方。

RestAssuredMockMvc.authentication = RestAssuredMockMvc.principal(oAuth2Authentication);

如果有人需要这个答案。


推荐阅读