java - 如何使用 xml 文件对我的 HtmlUnit 代码进行单元测试

标签 java htmlunit

我正在编写一个使用 HtmlUnit 来筛选一些数据的应用程序。哪些字段来自页面的哪些部分以及检索它们的 XPath 的逻辑变得有点复杂,因此在重构之前我想编写一些简单的单元测试。我已使用“page.asXml()”方法获取页面 XML 并将其作为文件保存在我的测试资源文件夹中,但如何将其作为 HtmlPage 加载回来?

例如

    HtmlPage page = webClient.getPage(url);
    System.out.println(page.asXml());

现在在我的单元测试中我想做等同于:

    HtmlPage page = new HtmlPage(myXmlTestFile);

但我似乎找不到任何可以做到这一点的东西。有什么想法吗?

最佳答案

我的最终解决方案(由许多其他 SO 帖子串联而成):

    URL url = new URL("http://www.example.com");

    InputStream is = this.getClass().getClassLoader().getResourceAsStream("myPageXmlFile.xml");
    String xmlPageString = IOUtils.toString(is);

    StringWebResponse response = new StringWebResponse(xmlPageString, url);
    WebClient client = WebClientConnector.createWebClient(false); // helper method for creating a WebClient instance
    HtmlPage page = HTMLParser.parseXHtml(response, client.getCurrentWindow());

关于java - 如何使用 xml 文件对我的 HtmlUnit 代码进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20473704/

相关文章:

java - 使用 if 语句和单选按钮在 Jlabel 上显示文本

java - 静态常量的值不显示在 Spring MVC 表单操作元素中

java - Spring中如何配置HtmlUnit请求的重试次数?

python - 使用 Python 进行屏幕抓取

javascript - 下载 JavaScript 返回的图像 (html2canvas)

Java循环链表

Java servlet - 导航到页面

javascript - html,js :populate form fields with values from arraylist and save back this arraylist in servlet

java - HtmlUnit 修改传出请求吗?如何?

java - 使用 HTMLunit 获取 ajax/javascript 内容