测试HTML解析器

时间:2013-06-17 13:22:33

标签: ruby testing nokogiri vcr

我正在尝试为在ruby上编写的HTML解析器实现一些测试并使用Nokogiri进行解析,它从某些http请求得到它的响应。

目前测试使用fixture(保存的html文件)。但问题是,实际响应会不时发生变化(元素的id或类别发生变化),以便解析器不会正确解析它。但测试仍然通过,因为它使用静态夹具。

你能推荐一种处理这种情况的方法吗?

1 个答案:

答案 0 :(得分:2)

我看到了三种可能的方法来实现这一目标:

  1. 您创建了一个rake任务,它通过从Internet下载新版本来更新HTML文件。当您想要处理内容时,只需运行rake任务然后运行测试。
  2. 您可以进行现场测试。这意味着您不必在测试期间解析本地文件,而是下载最新版本并使用它运行测试。
  3. 它是1到2之间的混合。当您开始测试时,您可以设置ENV参数,例如LIVE=true。如果LIVEtrue,您将从Internet下载最新版本的内容并将其保存在本地。然后,您将使用下载的内容运行测试。 如果您使用LIVE=false运行测试,则不会从Internet下载内容,只需使用下载的内容。
  4. 有意义吗?

    希望它有所帮助!