java - mockmvc standalonesetup how to inject freemarker viewresolver? -


i'm using spring test framework present in spring 3.2.0 test spring mvc controllers.

im trying create standalone test setup have total control of variables. i've got test working internalresourceviewresolver. i'm trying use freemarker templating engine , can not figure out how include freemarker configuration bean standalone setup.

the following class:

@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 layout,spring.ftl spring");     configurer.setfreemarkersettings(settings);      return configurer; }  @test public void showaddtodoform_shouldcreateformobjectandrenderaddtodoform() throws exception {     mockmvc.perform(get("/register"))             .andexpect(status().isok());  }  } 

gives following exception:

org.springframework.web.util.nestedservletexception: request processing failed;  nested exception org.springframework.context.applicationcontextexception:  must define single freemarkerconfig bean in web application context (may inherited):  freemarkerconfigurer usual implementation. bean may given name.;  nested exception org.springframework.beans.factory.nosuchbeandefinitionexception:  no qualifying bean of type [org.springframework.web.servlet.view.freemarker.freemarkerconfig] defined 

how can add freemarker configuration bean context can inject freemarker view resolver mockmvc standalone setup?

i'm not familiar mockmvc did try using freemarker configuration instead of setfreemarkersettings?

example:

@bean public freemarkerconfigurer freemarkerconfigurer(webapplicationcontext applicationcontext) throws ioexception, templateexception {     freemarkerconfigurer configurer = new freemarkerconfigurer();      freemarker.template.configuration configuration = configurer.createconfiguration();     configuration.addautoinclude("/templates/include-common.ftl");     configuration.setwhitespacestripping(true);      configuration.setdefaultencoding("utf-8");     configuration.setoutputencoding("utf-8");     configuration.seturlescapingcharset("utf-8");     configuration.setservletcontextfortemplateloading(applicationcontext.getservletcontext(), "/web-inf/ftl/");      configurer.setconfiguration(configuration);      return configurer; } 

Comments

Popular posts from this blog

ruby on rails - RuntimeError: Circular dependency detected while autoloading constant - ActiveAdmin.register Role -

c++ - OpenMP unpredictable overhead -

javascript - Wordpress slider, not displayed 100% width -