-1

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

目前,测试使用一个夹具(保存的 html 文件)。但问题是,实际响应有时会发生变化(元素的 ID 或类别发生变化),因此解析器无法正确解析它。但测试仍然通过,因为它使用了静态夹具。

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

4

1 回答 1

2

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

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

说得通?

希望能帮助到你!

于 2013-06-17T14:03:55.127 回答