View Test by JUnit

mixer2の利点のひとつが、Webアプリの画面をJUnitでテストできることです。 JSPとカスタムタグを使った画面では、ブラウザを通じてテストするしかありませんでした。 mixer2は画面に対する操作、情報の埋め込みをJSPではなくjavaソース上で実現し、 「htmlの文字列」ではなく「htmlのオブジェクト」として画面全体を扱うことができるため、 従来では難しかったJUnitでの画面のテストが可能です。

以下は、ごく単純な画面(Htmlオブジェクト)を出力するクラスとそのテンプレート、 そしてJUnitテストケースの例です。

テンプレート:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div id="foo">
here comes message
</div>
</body>
</html>

Javaクラス:

public class Sample {

    public Html createHtml(String message) throws IOException {
        Mixer2Engine m2e = new Mixer2Engine();
        Html html = m2e.loadHtmlTemplate(new File("Sample.html"));
        html.getById("foo", Div.class).replaceInner(message);
        return html;
    }

}

JUnit4テストケース:

public class SampleTest {

    @Test
    public void executeHtmlTest() throws IOException {
        Sample sample = new Sample();
        Html html = sample.createHtml("aaa");
        assertEquals("aaa",html.getById("foo", Div.class).getContent().get(0));
    }

}