通过将@WithMockUser注释为我的测试方法,不应该检查已登录的通行证,因此重定向到“ /”
a
这是我要测试的控制器。
g
这是我的测试方法。如果我取消注释该行以强制检查为真,则测试通过。
答案 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