@Test
public void testBuildMethods04() throws Exception {

    // テスト対象のインスタンス化
    URL url = this.getClass().getResource(
            "AbstractFileLineIterator_bulidFields01.txt");
    String fileName = url.getPath();
    Map<String, ColumnParser> columnParserMap = new HashMap<String, ColumnParser>();
    columnParserMap.put("java.lang.String", new NullColumnParser());
    AbstractFileLineIteratorImpl02<AbstractFileLineIterator_Stub52> fileLineIterator = new AbstractFileLineIteratorImpl02<AbstractFileLineIterator_Stub52>(
            fileName, AbstractFileLineIterator_Stub52.class,
            columnParserMap);
    // 引数の設定
    // なし
    // 前提条件の設定
    Method method = AbstractFileLineIterator.class.getDeclaredMethod("buildFields");
    method.setAccessible(true);
    method.invoke(fileLineIterator);
    // テスト対象のインスタンス化で設定済み
    // テスト実施
    try {
        method = AbstractFileLineIterator.class.getDeclaredMethod("buildMethods");
        method.setAccessible(true);
        method.invoke(fileLineIterator);
        fail("FileExceptionがスローされませんでした。");
    } catch (InvocationTargetException e) {
        // 返却値の確認
        // なし
        // 状態変化の確認
        Method[] methods = (Method[]) ReflectionTestUtils.getField(
                fileLineIterator, "methods");
        assertNull(methods);
        assertSame(FileException.class, e.getTargetException().getClass());
        assertEquals("The setter method of column doesn't exist.", e.getTargetException()
                .getMessage());
        assertSame(NoSuchMethodException.class, e.getTargetException().getCause().getClass());
        assertSame(fileName, ((FileException)e.getTargetException()).getFileName());
    }
}