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 に答える