0

我想知道是否有一种快速的方法来对 LinkParseFilter 配置进行单元测试。

例如,如果我有一个带有 LinkParseFilter 的 parsefilter 文件,如下所示:

...
    {
      "class": "com.digitalpebble.stormcrawler.parse.filter.LinkParseFilter",
      "name": "MyGalleryParseFilter",
      "params": {
        "thumbnails": "substring-before(substring-after(//a[@class='thumbnail']/span/@style, 'background-image: url('), ')')",
        "gallery": "//div[@class='browse']//a/@href",
        "interesting": "//ul[@class='also-interesting']//a/@href",
        "original": "//div[@id='original-image-frame']//a/img/@src"
      }
    },
...

使用一些示例页面内容对其进行单元测试以检查它是否提取了我想要的内容的最快方法是什么?

4

1 回答 1

0

一种选择是编写类似于核心模块中的单元测试,您需要将页面的副本保存在src/test/resources/中。但是,这假定 FetcherBolt 返回与您存储的页面副本相同的内容,但情况不一定如此。

您还可以修改拓扑或编写自定义拓扑以使用与 MemorySpout 相同的配置。原型的拓扑是一个很好的起点,因为 StdOutStatusUpdater 将打印出所有找到的 URL。使用 Eclipse(或您选择的编辑器)在调试模式下运行它也会有所帮助。

是不是有一个 URL 过滤器删除了您刚刚创建的外链?

于 2018-10-04T11:35:24.893 回答