@WithMockUser未验证

时间:2019-01-10 01:41:25

标签: unit-testing spring-boot spring-security

通过将@WithMockUser注释为我的测试方法,不应该检查已登录的通行证,因此重定向到“ /”

a

这是我要测试的控制器。

g

这是我的测试方法。如果我取消注释该行以强制检查为真,则测试通过。

1 个答案:

答案 0 :(得分:0)

@WithMockUser确实有效,这是一个简单的Java example,它是sample的一部分,您可以自己下载并运行。只需将整个项目导入到您的IDE

@Test
@DisplayName("authenticated browser with mock user")
@WithMockUser
public void htmlRequestWithMockUser() throws Exception {
    mvc.perform(
        get("/secure")
    )
        .andExpect(status().isOk())
        .andExpect(content().string(containsString("You are authenticated")))
    ;
}

我不是Groovy的大用户,但是我猜测您的代码没有使用 real SpringSecurityService对象,因为在第一行中您已经对其进行了模拟

def springSecurityService = Mock( SpringSecurityService )

在我看来,这似乎是您在编写用于测试模拟的测试,而不是真实的对象。您从未将模拟程序编程为根据条件返回true。您可能不应该嘲笑SpringSecurityService