스프링 용 MCU 컨트롤러를 테스트하기 위해 스프링 3.2.0에있는 스프링 테스트 프레임 워크를 사용하고 있습니다.mockmvc standalonesetup freemarker viewresolver 주입하는 방법?
나는 모든 변수를 완벽하게 제어 할 수 있도록 독립 실행 형 테스트 설정을 만들려고합니다. InternalResourceViewResolver로 작업하는 테스트가 있습니다. 하지만 지금은 내 템플릿 엔진으로 freemarker를 사용하려고하고 있으며 freemarker 구성을 독립 실행 형 설치에 콩으로 포함시키는 방법을 알 수 없습니다.
다음 클래스 : 나는 프리 마커 뷰 리졸버를 주입 할 수 있도록 내가 mockmvc에 문맥에 프리 마커 구성 콩을 추가 할 수있는 방법
org.springframework.web.util.NestedServletException: Request processing failed;
nested exception is org.springframework.context.ApplicationContextException:
Must define a single FreeMarkerConfig bean in this web application context (may be inherited):
FreeMarkerConfigurer is the usual implementation. This bean may be given any name.;
nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type [org.springframework.web.servlet.view.freemarker.FreeMarkerConfig] is defined
:
@RunWith(MockitoJUnitRunner.class)
public class StandAloneRegistrationControllerTest {
private MockMvc mockMvc;
@Mock
private UserRegistrationService userRegistrationServiceMock;
@Before
public void setUp() {
mockMvc = MockMvcBuilders.standaloneSetup(new RegistrationController())
.setViewResolvers(viewResolver())
.build();
}
private ViewResolver viewResolver() {
FreeMarkerViewResolver freeMarkerViewResolver = new FreeMarkerViewResolver();
freeMarkerViewResolver.setCache(false);
freeMarkerViewResolver.setPrefix("/view/");
freeMarkerViewResolver.setSuffix(".ftl");
freeMarkerViewResolver.setContentType("text/html;charset=UTF-8");
freeMarkerViewResolver.setRequestContextAttribute("rc");
freeMarkerViewResolver.setExposeSpringMacroHelpers(true);
freeMarkerViewResolver.setExposeRequestAttributes(true);
freeMarkerViewResolver.setExposeSessionAttributes(true);
freeMarkerViewResolver.setAllowSessionOverride(true);
return freeMarkerViewResolver;
}
@Bean
public FreeMarkerConfigurer freeMarkerConfigurer() {
FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();
configurer.setTemplateLoaderPath("/WEB-INF/");
configurer.setDefaultEncoding("UTF-8");
Properties settings = new Properties();
settings.put("auto_import", "/view/layouts/layouts.ftl as layout,spring.ftl as spring");
configurer.setFreemarkerSettings(settings);
return configurer;
}
@Test
public void showAddTodoForm_ShouldCreateFormObjectAndRenderAddTodoForm() throws Exception {
mockMvc.perform(get("/register"))
.andExpect(status().isOk());
}
}
다음과 같은 예외를 제공합니다 독립 실행 형 설정?