0

我有一个包含以下代码的 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

有谁知道如何获取完整的信息,包括它的论点等?

4

1 回答 1

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));

尽管此解决方案并没有真正从错误中“获取”消息,但它达到了它的目的。

希望这对将来的某人有所帮助。

于 2012-05-11T21:50:20.067 回答