Я новичок в Spring Boot 1.4 и стараюсь использовать новые функции. У меня простой контроллер Spring MVC.Spring Boot 1.4 Тестирование
@Controller
public class IndexController {
@RequestMapping("/")
String index(){
return "index";
}
}
Контроллер возвращается шаблон Thymeleaf с содержащей строкой Hello
я написал следующее испытание блока, и это работает прекрасно:
@RunWith(SpringRunner.class)
@WebMvcTest(IndexController.class)
public class SpringMvcTestApplicationTests {
private MockMvc mockMvc;
@Before
public void setUp() {
mockMvc = MockMvcBuilders.standaloneSetup(new IndexController()).build();
}
@Test
public void testIndex() throws Exception{
MvcResult result= this.mockMvc.perform(get("/"))
.andExpect(status().isOk())
.andExpect(view().name("index"))
.andReturn();
String content = result.getResponse().getContentAsString();
assertNotNull(content);
}
}
Но я прочитал Многих из аннотации предоставляют дополнительную автоматическую конфигурацию, характерную для тестирования. Например, если вы используете @WebMvcTest, вы можете @Autowire полностью сконфигурированный экземпляр MockMvc.. Я также видел примеры autowiring MockMvc.
Но после того, как я удалил метод @Before, после добавления метода @Before, после завершения процедуры тестирования, я снова добавлю код автоувеличивания.
@Autowired
private MockMvc mockMvc;
Ошибка утверждение:
java.lang.AssertionError: Status
Expected :200
Actual :401
Второй вопрос, я хочу, чтобы проверить содержимое, что Thymeleaf возвращается. Я тестировал с:
.andExpect(content().string("Hello"))
также
.andExpect(content().string(Matchers.containsString("Hello")))
, а также
assertEquals("Hello", content);
На рассмотрении, я обнаружил, что содержимое является пустая строка, и поэтому тест не пройден с:
org.junit.ComparisonFailure:
Expected :Hello
Actual :
Как проверить содержимое.
Заранее спасибо.
Вы правы, это связано это связано с проблемой безопасности. Я специально смотрю, как автообновить MockMvc с аннотацией WebMvcTest. Несколько статей показывают это, но у меня нет доступа к исходному коду. Несколько примеров: [Официальная версия здесь] (https://spring.io/blog/2016/04/15/testing-improvements-in-spring-boot-1-4) (Тестирование срединного фрагмента MVC), [здесь] (http://info.michael-simons.eu/2016/04/17/8-new-features-youll-get-with-spring-boot-1-4/), [а также здесь] (http:// /moodle2.insa-lyon.fr/pluginfile.php/73540/mod_resource/content/2/spring-boot-lab.html#testing-mockmvc) – user2693135
См. текущее редактирование –
Проблема остается. Я разместил код на GitHub [Нажмите здесь] (https: // github.com/ximanta/blog-spring-mvc-test) – user2693135