Spring MockMvc не ожидайте контента - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь протестировать шаблон тимилиста, который возвращает контент на основе роли безопасности пользователя Spring.

Я ищу, чтобы проверить, что некоторого контента не существует

@Autowired
private MockMvc mockMvc;

...

mockMvc.perform(get("/index"))
    .andExpect(status().isOk())
    .andExpect(content().string(containsString("This content should be shown.")))
    .andExpect(content().string(XXXXXXX("This content should not be shown")));

Возможно ли это?

1 Ответ

1 голос
/ 19 июня 2019

Одним из решений является использование метода CoreMatchers.not (....) подколенного сухожилия:

@Test
@WithMockUser(roles = "USER")
public void loginWithRoleUserThenExpectUserSpecificContent() throws Exception {
    mockMvc.perform(get("/index"))
            .andExpect(status().isOk())
            .andExpect(content().string(containsString("This content is only shown to users.")))
            .andExpect(content().string(doesNotContainString("This content is only shown to administrators.")));
}

private Matcher<String> doesNotContainString(String s) {
    return CoreMatchers.not(containsString(s));
}
...