【问题标题】:movckmvc test that correct error message returnedmovckmvc 测试返回正确的错误信息
【发布时间】:2014-12-05 13:43:40
【问题描述】:

以下测试(测试验证失败,因为用户接受的条款和条件不是最新版本)工作正常,但我想测试返回的错误消息。这样做的原因是后续测试(如果接受的条款和条件版本为空,则检查验证是否失败)将具有相同的测试标准。

因此,我还想测试返回的错误消息。我整个上午都在寻找一些东西,但找不到任何东西,这让我想知道是否甚至可以访问/测试错误消息值?我可以看到它在模型中,但正在努力访问/测试它。

任何帮助将不胜感激!

提前致谢

S

测试

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration({ "file:src/main/webapp/WEB-INF/spring-servlet.xml" })
public class FailureRegistrationControllerTest {

@Autowired
private WebApplicationContext wac;

private MockMvc mockMvc;

@Before
public void setUp() throws Exception {
    mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
}

@Test
public void acceptedVersionIsNotTheLatestTest() throws Exception {

    //Create the DTO User
    UserRegistrationDTO user = TestingUtility.createMinimumUserDTO();
    user.setTermsAndConditionsVersion(TestingConstants.NOT_LATEST_TERMS_AND_CONDITIONS);

    //Run the test
    ResultActions resultActions = TestingUtility.buildResultsActionsMinimum(mockMvc, user);

    resultActions.andExpect(status().isOk()); 
    resultActions.andExpect(view().name("register"));
    resultActions.andExpect(model().attributeHasFieldErrors("user", "termsAndConditionsAccepted"));

}

【问题讨论】:

    标签: spring-mvc junit integration-testing mockmvc


    【解决方案1】:

    我曾经试图解决类似的问题,但我只是没有很正式的解决方案。我检查了code 他们是如何做到的,我发现任何错误都存储在以BindingResult.MODEL_KEY_PREFIX 为前缀的模型中,请参阅他们的代码:

    private BindingResult getBindingResult(ModelAndView mav, String name) {
        BindingResult result = (BindingResult) mav.getModel().get(BindingResult.MODEL_KEY_PREFIX + name);
        assertTrue("No BindingResult for attribute: " + name, result != null);
        return result;
    }
    

    这样您就可以从模型中获取它并检查详细信息...

    【讨论】:

      猜你喜欢
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 2019-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多