@Test
public void testValidate01() throws Exception {

    // 前処理
    CommonsValidatorEx_ValidatorResourcesStub01 resources = 
        new CommonsValidatorEx_ValidatorResourcesStub01();
    Form form = new Form();
    resources.setForm(form);
    // super.validate()のオーバーライドはできないため、
    // Fieldのモッククラスを作成して、
    // super.validate()が呼び出す、field.validate()の
    // 結果を操作する。
    // super.validate()は、field.validate()の結果をマージして返却している。
    CommonsValidatorEx_FieldStub01 field =
        new CommonsValidatorEx_FieldStub01();
    List<Field> lFields = new ArrayList<Field>();
    lFields.add(field);
    ReflectionTestUtils.setField(form, "lFields", lFields);
    ValidatorResults validatorResults = new ValidatorResults();
    Map<String, ValidatorResult> hResults
        = new HashMap<String, ValidatorResult>();
    ValidatorResult validatorResult = new ValidatorResult(field);
    hResults.put("test", validatorResult);
    ReflectionTestUtils.setField(validatorResults, "hResults", hResults);
    
    field.validateReturn = validatorResults;
    
    CommonsValidatorEx commonsValidatorEx = new CommonsValidatorEx(
            resources, "formName");
    // テスト実施
    ValidatorResults result = commonsValidatorEx.validate();
    // 判定
    // resultが、field.validate()の結果を含んでいるかを確認する。
    Map<?, ?> resultHResults = (Map<?, ?>) ReflectionTestUtils.getField(result, "hResults");
    assertEquals(1, resultHResults.size());
    assertSame(validatorResult, resultHResults.get("test"));
}