n-3104の備忘録
更新履歴
取得中です。

日記 > 2008-01-12


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

整形済みテキスト変換ツールをJavaで作っているのだが、JTextAreaがメモリ上では改行文字を"\n"としている点に気付かず、3時間近く悩んでしまった。。下手にJUnitでテストしようとして、初期値の改行文字に"\r\n"を指定してしまったことがそもそもの発端だ。今後あまり使ったことがないクラスを利用する際は、軽くJavaDocに目を通すようにしよう。
ちなみに、変換部分自体はとりあえず完成した。以下のJUnitテストのソースは実際に変換ツールを利用したもの。

package jp.gr.java_conf.n3104.wikicon;

import static org.junit.Assert.assertEquals;
import javax.swing.JTextArea;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import org.junit.Test;

public class WikiConverterTest {

    @Test
    public void テキストの変換() throws Exception {
        Document src = new JTextArea(
                "abc\n" // ← ここで最初に"\r\n"としてしまった
            +    "\tefg"
                ).getDocument();
        Document trg = new JTextArea().getDocument();
        Document  ept = new JTextArea(
                " abc\n"
            +    "     efg"
                ).getDocument();
        WikiConverter.convert(src, trg);
        assertEquals(toString(ept), toString(trg));
    }

    private String toString(Document document) throws BadLocationException {
        return document.getText(0, document.getLength());
    }
}
合計: -
今日: -
昨日: -