@SuppressWarnings("rawtypes")
@Test
public void testBuildMethods03() throws Exception {

    // 前処理(試験対象)
    String fileName = "fileName";
    Class<AbstractFileLineWriter_Stub25> clazz = AbstractFileLineWriter_Stub25.class;
    Map<String, ColumnFormatter> columnFormatterMap = new HashMap<String, ColumnFormatter>();
    columnFormatterMap.put("int", new IntColumnFormatter());
    columnFormatterMap.put("java.lang.String", new NullColumnFormatter());
    AbstractFileLineWriter<AbstractFileLineWriter_Stub25> fileLineWriter = new AbstractFileLineWriterImpl01<AbstractFileLineWriter_Stub25>(fileName, clazz, columnFormatterMap);
    Method method = AbstractFileLineWriter.class.getDeclaredMethod(
            "buildFields");
    method.setAccessible(true);
    method.invoke(fileLineWriter);
    method = AbstractFileLineWriter.class.getDeclaredMethod(
            "buildStringConverters");
    method.setAccessible(true);
    method.invoke(fileLineWriter);
    try {
        // テスト実施
        method = AbstractFileLineWriter.class.getDeclaredMethod(
                "buildMethods");
        method.setAccessible(true);
        method.invoke(fileLineWriter);
        fail("FileExceptionが発生しませんでした。");
    } catch (InvocationTargetException e) {
        // 判定(例外)
        assertTrue(FileException.class.isAssignableFrom(e
                .getTargetException().getClass()));
        assertEquals("The getter method of column doesn't exist.", e
                .getTargetException().getMessage());
        assertTrue(NoSuchMethodException.class.isAssignableFrom(e
                .getTargetException().getCause().getClass()));
        assertEquals(fileName, ((FileException) e.getTargetException())
                .getFileName());
    } finally {
        Field field = AbstractFileLineWriter.class.getDeclaredField(
                "stringConverterCacheMap");
        field.setAccessible(true);
        field.set(AbstractFileLineWriter.class,
                new HashMap<Class, StringConverter>());
    }
}