n-3104の備忘録
2008-01-12
最終更新:
n-3104
-
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()); } }