Wicketはこんなにいろいろテストを書くことができるんだよ!
Wicketはこんなにいろいろテストを書くことができるんだよ!
常々からWicketのテストの充実さ(Ajaxまわり除く)に助けられているので、どんなことができるのか一部ご紹介します。
package jp.ne.hatena.syoko_sasaki; import java.awt.Label; import junit.framework.TestCase; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.util.tester.FormTester; import org.apache.wicket.util.tester.WicketTester; import org.junit.Test; public class HomePageTest extends TestCase { private WicketTester tester; @Override public void setUp() { tester = new WicketTester(); } @Test public void test() throws Exception { //はじめのページを設定 tester.startPage(HomePage.class); //ちゃんとページが表示されるかどうか tester.assertRenderedPage(HomePage.class); //コンポーネントがaddされているか tester.assertComponent("message",Label.class); //Labelの中身チェック tester.assertLabel("message", "hoge"); //コンポーネントの活性チェック TextField text = (TextField) tester.getComponentFromLastRenderedPage("form:text"); assertTrue(text.isEnabled()); //フォームのテスト開始 FormTester formTester = tester.newFormTester("form"); //TextFieldに値いれる formTester.setValue("text", "foo"); //セレクトボックス値をいれる formTester.select("box", 1); //サブミットボタンが複数ある場合は引数にidを指定しましょう。 formTester.submit(); //エラーメッセージがあったら取得 tester.assertErrorMessages(new String[] {"◯◯は必須項目です。"}); } }
テストを書かないとソウルジェムが汚れちゃうよ!