测试Spring验证器消息

时间:2012-05-08 16:37:20

标签: spring validation resources junit

我有一个包含以下代码的Spring验证器。

errors.rejectValue("myFieldName", "errors.required", new Object[] { "My Field" }, "Field required");

我想测试是否正在接收errors.required消息。我一直无法找到方法。到目前为止我在jUnit中所拥有的是:

FieldError fieldError = errors.getFieldErrors().get(0);
assertEquals("myFieldName", fieldError.getField());
assertEquals("errors.required", fieldError.getCode());
//TODO: test that the message was picked up

有没有人知道如何获取完整的信息,还有它的参数等等?

1 个答案:

答案 0 :(得分:0)

我设法找到了解决方案。

在我的jUnit测试中,我连接了MessageSource

@Autowired
private MessageSource messageSource;

然后我写了一个方便的方法。

private String getConfiguredMessage(FieldError fieldError) {
    return messageSource.getMessage(fieldError.getCode(), 
                                    fieldError.getArguments(), 
                                    Locale.US);
}

使用此方法,我可以找出配置的消息是什么。

assertEquals("My Field is required.", getConfiguredMessage(fieldError));

虽然这个解决方案并没有真正从错误中“获取”消息,但它可以满足它的目的。

希望这有助于将来。