我正在为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'元素。 那么我怎样才能获得相同的功能,但是当我有按钮时,它会产生一些反应(不是链接)。
答案 0 :(得分:2)
正如tapestry documentation所述 - “PageTester在纯单元测试和全面集成测试之间处于中间地位。”
PageTester是一个仅限Java的模拟,它可以模拟:
<t:eventlink>
<t:actionlink>
<t:form>
<t:submit>
如果您创建了<button>
并附加了onclick
javascript处理程序,则PageTester无法模拟此情况,因为它实际上并未运行任何javascript。如果您想测试javascript,则需要使用selenium