如何使用tapestry页面测试器对按钮进行单击操作

时间:2013-07-10 08:51:44

标签: tapestry

我正在为tapestry应用程序编写一些测试。 PageTester提供了一个clickLink方法,可以模拟链接上的点击。我需要相同的功能,但使用按钮(不带'a'元素)。我怎么可能得到它?

代码示例, 这就是我所知道的:

@Test
public void clickLink(){

    Document document = pageTester.renderPage("Index");

    assertTextPresent(document, "Current value:0");

    Element link = document.getRootElement()
            .getElement(new Predicate<Element>() {
                public boolean accept(Element element) {
                    return element.getName().equals("a")
                            && element.getChildMarkup().equals("Increment");
                }
            });

    document = pageTester.clickLink(link);

    assertTextPresent(document, "Current value:1");

    document = pageTester.clickLink(link);

    assertTextPresent(document, "Current value:2");
}

但问题是clickLink只接受'a'元素。 那么我怎样才能获得相同的功能,但是当我有按钮时,它会产生一些反应(不是链接)。

1 个答案:

答案 0 :(得分:2)

正如tapestry documentation所述 - “PageTester在纯单元测试和全面集成测试之间处于中间地位。”

PageTester是一个仅限Java的模拟,它可以模拟:

  1. 点击<t:eventlink>
  2. 点击<t:actionlink>
  3. 提交<t:form>
  4. 点击<t:submit>
  5. 如果您创建了<button>并附加了onclick javascript处理程序,则PageTester无法模拟此情况,因为它实际上并未运行任何javascript。如果您想测试javascript,则需要使用selenium