我正在使用Nokogiri检查自动生成的网站是否包含正确的信息和子网站。它有效,但我需要测试它,而且我不确定这样做的好方法。我目前的方法是在网上找到我知道有某些信息的网站,并确保应用程序找到了。
因此,例如,我直观地检查网站上的表中有多少行,然后测试以查看检查该表的函数是否返回该行数。 URL和数字都是硬编码的。该网站可能不会改变,但也不是不可能,在这种情况下,测试显然会失败。
有没有更好的方法呢?
答案 0 :(得分:1)
为什么不创建一些HTML页面并使用基于Nokigiri的对象打开它们并验证您的假设
# fixture.html
# ... truncated
<table>
<tr></td>One Row</td></tr>
</table>
class TableScraper
attr_accessor :document, parser
def initialize(document, parser)
@document = document
@parser = parser
end
def rows_in_table
# your code here
end
end
describe TableScraper do
let(:file) { File.open("/path/to/fixture.html") }
subject { described_class.new(file, Nokogiri::HTML) }
it { expect { subject.rows_in_table }.to eq 1 }
end
显然这是一个简单的例子,而不是真正的代码,但这就是我接近它的方式。