首页 文章

Spring MVC单元测试 - 如何使用hamcrest匹配器

提问于
浏览
0

我正在尝试为MVC控制器方法编写一个简单的测试用例 .

我想测试视图名称包含一个字符串 .

我想我需要这个名称matcher的版本:

public ResultMatcher name(org.hamcrest.Matcher<? super String> matcher) 取自这里:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/test/web/servlet/result/ViewResultMatchers.html#name-org.hamcrest.Matcher-

但是我该如何使用它?我无法找到正确的语法......

(此表达式的Matchers.contains(“web_tmpl”)部分的语法错误:

this.mockMvc.perform(MockMvcRequestBuilders.get("/content/2"))
                .andExpect(MockMvcResultMatchers.status().isOk())
                .andExpect(MockMvcResultMatchers.view().name(Matchers.contains("web_tmpl")))
            ;

1 回答

  • 1

    您应该为其添加静态导入

    import static org.hamcrest.Matchers.containsString;
    

    并使用

    .andExpect(view().name(containsString("web_tmpl")))
    

    如果你使用maven,依赖是

    <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-library</artifactId>
            <version>1.3</version>
            <scope>test</scope>
        </dependency>
    

相关问题