Tapestry 5ユニットテスト
もう1つの側面では、テンプレートファイルをテストすることができます.テンプレートファイルはHTMLファイルであり、HTMLファイルにテストが含まれる可能性があります.*ページフィールドには、テスト*テストlinkアクション*テストフォーム提出form 1が表示されます.ページフィールド表示テストは、第1章のスタートテンプレートで主に「Hello World!」と断言して表示されます.文字列.テスト手順はリスト2.5に示す.
PageTesterオブジェクトはテスト補助クラスであり、PageTesterオブジェクトをインスタンス化するには3つのパラメータが必要である:appPackageはアプリケーションの基本パッケージであり、appNameはIoCコンテナのModeule名前のデフォルトAppModuleである.JAvaは、我々のケースではModeuleがないので、デフォルトのApp、WebRootはテンプレートファイルがある場所です.renderPageメソッドは、プレゼンテーションページをシミュレートしてDocumentオブジェクトを得る方法であり、XHTMLファイルはXMLドキュメントと見なすことができ、Documentオブジェクトは全体のページであり、DocumentのgetElementById(「label 1」)メソッドは、idが「label 1」であるElementオブジェクトを取得し、getChildMarkup()を呼び出すことで要素の内容を得ることができ、戻る内容にはリターンとスペースがある可能性があるため、trim()メソッドを呼び出すのに役立ちます.最後にlabel 1の内容を「HelloWorld!」と断言します.
http://tapestry.apache.org/tapestry5/tapestry-core/guide/unit-testing-pages.html Testing an action link After rendering a page, you may want to "click"on an action link and then assert against the resulting page. You can do it this way:
Testing a form submission After rendering a page, you may want to fill out a form, submit it and then inspect the resulting page. You can do it this way:
To submit a form by clicking a submit button, call the clickSubmit() method instead. Unit testing a component To unit test a component, just create a test page containing that component. Then unit test that page.
- package com.kingbegin.web.pages;
-
- import org.apache.tapestry.dom.Document;
- import org.apache.tapestry.test.PageTester;
- import org.junit.Assert;
- import org.junit.Before;
- import org.junit.Test;
-
- public class StartTemplateTest {
-
- PageTester tester;
- Document doc;
-
- @Before
- public void setUp() throws Exception {
-
- String appPackage = "com.kingbegin.web";
- String appName = "App"; // IoC Modeule , AppModule.java。
- tester = new PageTester(appPackage, appName, "WebRoot");
- doc = tester.renderPage("Start");
- }
-
- @Test
- public void testGetMessage() {
- String message = doc.getElementById("label1").getChildMarkup().trim();
- Assert.assertEquals(message, "Hello World!");
- }
-
- }
PageTesterオブジェクトはテスト補助クラスであり、PageTesterオブジェクトをインスタンス化するには3つのパラメータが必要である:appPackageはアプリケーションの基本パッケージであり、appNameはIoCコンテナのModeule名前のデフォルトAppModuleである.JAvaは、我々のケースではModeuleがないので、デフォルトのApp、WebRootはテンプレートファイルがある場所です.renderPageメソッドは、プレゼンテーションページをシミュレートしてDocumentオブジェクトを得る方法であり、XHTMLファイルはXMLドキュメントと見なすことができ、Documentオブジェクトは全体のページであり、DocumentのgetElementById(「label 1」)メソッドは、idが「label 1」であるElementオブジェクトを取得し、getChildMarkup()を呼び出すことで要素の内容を得ることができ、戻る内容にはリターンとスペースがある可能性があるため、trim()メソッドを呼び出すのに役立ちます.最後にlabel 1の内容を「HelloWorld!」と断言します.
- tapestry-test-5.0.11.jar
-
- If the page requires a context, you can pass it this way:
- public class MyTest extends Assert
- {
- @Test
- public void test1()
- {
- String appPackage = "org.example.app";
- String appName = "LocaleApp";
- PageTester tester = new PageTester(appPackage, appName, "src/main/webapp");
- Object[] context = new Object[]{ "abc", 123 };
- Document doc = tester.invoke(new ComponentInvocation(new PageLinkTarget("MyPage"), context));
- assertEquals(doc.getElementById("id1").getChildText(), "hello");
- }
- }
http://tapestry.apache.org/tapestry5/tapestry-core/guide/unit-testing-pages.html Testing an action link After rendering a page, you may want to "click"on an action link and then assert against the resulting page. You can do it this way:
- public class MyTest extends Assert
- {
- @Test
- public void test1()
- {
- String appPackage = "org.example.app";
- String appName = "LocaleApp";
- PageTester tester = new PageTester(appPackage, appName, "src/main/webapp");
- Document doc = tester.renderPage("MyPage");
- Element link = doc.getElementById("link1");
- doc = tester.clickLink(link);
- assertTrue(doc.toString().contains("abc"));
- }
- }
Testing a form submission After rendering a page, you may want to fill out a form, submit it and then inspect the resulting page. You can do it this way:
- public class MyTest extends Assert
- {
- @Test
- public void test1()
- {
- String appPackage = "org.example.app";
- String appName = "LocaleApp";
- PageTester tester = new PageTester(appPackage, appName, "src/main/webapp");
- Document doc = tester.renderPage("MyPage");
- Element form = doc.getElementById("form1");
- Map<String, String> fieldValues = new HashMap<String, String>();
- fieldValues.put("field1", "hello");
- fieldValues.put("field2", "100");
- doc = tester.submitForm(form, fieldValues);
- assertTrue(doc.toString().contains("abc"));
- }
- }
To submit a form by clicking a submit button, call the clickSubmit() method instead. Unit testing a component To unit test a component, just create a test page containing that component. Then unit test that page.