0

我正在编写一个 JUnit 测试,它应该测试一个 html 页面的标题。本项目是一个 SpringBoot、Thymeleaf 入门项目。

html路径:

private final static String HTML_PATH = "/pages/dashboard/dashboard.html";

JUnitTest:

@Test
public void shouldRenderPageTitle() throws IOException, NodeSelectorException {
    Map<String,Object> model = new HashMap<>();
    model.put("pageTitle", "expected title");
    HtmlElements tags = testEngine.process(HTML_PATH, model);
    assertThat(tags.matching("title"), isSingleElementThat(hasOnlyText("expected title")));
}

Thymeleaf 配置

@Configuration
public class ThymeleafConfig {

@Bean
public TemplateResolver templateResolver() {
    TemplateResolver templateResolver = new TemplateResolver();
    templateResolver.setPrefix("/resources/templates/");
    return templateResolver;
}

@Bean
public SpringTemplateEngine templateEngine() {
    SpringTemplateEngine templateEngine = new SpringTemplateEngine();
    templateEngine.setTemplateResolver(templateResolver());
    templateEngine.addDialect(new LayoutDialect());
    templateEngine.addDialect(new SpringStandardDialect());
    return templateEngine;
}

@Bean
public ThymeleafViewResolver thymeleafViewResolver() {
    ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
    viewResolver.setTemplateEngine(templateEngine());
    return viewResolver;
}

}

错误:

org.thymeleaf.exceptions.TemplateInputException: Error resolving template "/pages/dashboard/dashboard.html"

目录树

4

2 回答 2

1

您必须使用
private final static String HTML_PATH = "/pages/dashboard/dashboard"; //没有“.html”

于 2018-10-10T06:34:42.800 回答
0

你能尝试替换这行代码吗

templateResolver.setPrefix("/resources/templates/");

有了这个

templateResolver.setPrefix("templates/");
于 2017-07-10T08:46:44.200 回答