栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

测试Spring @MVC批注

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

测试Spring @MVC批注

在即将发布的spring 3.2(可用的SNAPSHOT)中或通过spring-test-
mvc(https://github.com/SpringSource/spring-test-mvc),您可以这样做:

首先我们模拟验证,因为我们不想测试验证器,只是想知道是否调用了验证。

public class LocalValidatorFactoryBeanMock extends LocalValidatorFactoryBean{    private boolean fakeErrors;    public void fakeErrors ( )    {        this.fakeErrors = true;    }    @Override    public boolean supports ( Class<?> clazz )    {        return true;    }    @Override    public void validate ( Object target, Errors errors, Object... validationHints )    {        if (fakeErrors)        { errors.reject("error");        }    }}

这是我们的测试班:

@RunWith(SpringJUnit4ClassRunner.class)@WebAppConfiguration@ContextConfigurationpublic class RegisterControllerTest{ @Autowired private WebApplicationContext  wac; private MockMvc mockMvc;     @Autowired     @InjectMocks     private RegisterController registerController;     @Autowired     private LocalValidatorFactoryBeanMock  validator;  @Before  public void setup ( )  {     this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();     // if you want to inject mocks into your controller  MockitoAnnotations.initMocks(this);  }    @Test    public void testPostValidationError ( ) throws Exception    {        validator.fakeErrors();        MockHttpServletRequestBuilder post = post("/info/register");        post.param("name", "Bob");        ResultActions result = getMockMvc().perform(post); // no redirect as we have errors        result.andExpect(view().name("info/register"));    }    @Configuration    @import(DispatcherServletConfig.class)    static class Config extends WebMvcConfigurerAdapter    {        @Override        public Validator getValidator ( )        { return new LocalValidatorFactoryBeanMock();        }        @Bean        RegisterController registerController ( )        { return new RegisterController();        }    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/660371.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号