n-3104の備忘録
2008-01-12
最終更新:
Bot(ページ名リンク)
-
view
整形済みテキスト変換ツールをJavaで作っているのだが、JTextAreaがメモリ上では改行文字を"\n"としている点に気付かず、3時間近く悩んでしまった。。下手にJUnitでテストしようとして、初期値の改行文字に"\r\n"を指定してしまったことがそもそもの発端だ。今後あまり使ったことがないクラスを利用する際は、軽くJavaDocに目を通すようにしよう。
ちなみに、変換部分自体はとりあえず完成した。以下のJUnitテストのソースは実際に変換ツールを利用したもの。
ちなみに、変換部分自体はとりあえず完成した。以下の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());
}
}