题
我想单元测试(JUnit 4中)我的网页的行为时,浏览器的后退按钮(或进或刷新)点击。
我可以采用某种模拟单元测试浏览器的后退/前进/刷新按钮? 是否有一个工具类,其提供这样的功能?
<强>第二编辑:强>
据我所知,检票试验设施不模拟浏览器的完整历史。从我的理解,我需要以下两件事情从一单元测试模拟浏览器的行为:
(1)检票必须告诉我什么当我打电话WicketTester.startPage()
或WicketTester.clickLink()
确切请求(例如URL)制成。
(2)检票具有再次处理相同的请求,例如通过接受先前由(1)记录的URL。
我想这样做的方式是WicketTester
,FormTester
兼容等等,因为我使用的是分量发现者,断言,并在这些类的更多好的功能。这意味着,我必须发出从检票设施从外部客户一样HttpUnit的/的HtmlUnit /硒的要求,而不是。
解决方案
您不能模拟检票单元测试“返回”功能,这完全是出于什么检票口呢,你可以试但几乎所有的东西的范围,当您单击后退会发生的。
有关你正在尝试测试,通常后退按钮只会给你一堆的小门“沾边”的组件,并且可以测试这些
后是更具体的其他提示
这是相当肯定不是WicketTester,其明确地使用伪WebApplication的不支持返回按钮以保存资源的支持。
我怀疑这将是痛苦的检票,以模拟...
您最好的选择可能是使用基于浏览器的测试工具,如硒RC 。我还没有尝试过自己,但它确实有一个goBack()
方法,将模拟在浏览器后退按钮的点击。
请查看 的HtmlUnit,你可以模仿背部和使用的记录类。
@Test
public void testHistory() throws IOException {
// Create a web client
final WebClient webClient = new WebClient();
// Surf to a page
final HtmlPage page = webClient.getPage("http://htmlunit.sourceforge.net/");
// Click "Get started" link
page.getAnchorByHref("gettingStarted.html").click();
// Get History
History history = webClient.getCurrentWindow().getHistory();
// Current page
assertEquals("http://htmlunit.sourceforge.net/gettingStarted.html",
history.getUrl(history.getIndex()).toString());
// Go back one page
history.back();
assertEquals("http://htmlunit.sourceforge.net/",
history.getUrl(history.getIndex()).toString());
}
不隶属于 StackOverflow