在我目前的应用程序中,我有一个从外部网站读取(提取)HTML的模块。举个例子说我正在提取以下div
<div class='sample'>
<p class="name">Jhon Smith</p>
<div class="address">
No30, 5th Street,
Home Town
</div>
</div>
我有阅读方法
例如:def name(htmlDiv) -> return "Jhon Smith"
def address(htmlDiv) -> return " No30, 5th Street,Home Town "
我的问题是如何使用rspec对这些方法进行单元测试?我的想法是做如下
读取字符串并传递给div作为参数
我在
答案 0 :(得分:0)
当我进行单元测试时,我会“存根”这个HTML:
describe MyExtractor do
let(:raw_html) { "<div>...</div>" }
let(:name) { 'John' }
let(:address) { 'Something' }
subject { described_class.new(raw_html) }
its(:name) { should eq name }
its(:address) { should eq address }
end
您可以从中提取特定的context
(当HTML格式不正确,何时为空,何时没有地址等)以测试边缘情况(稍后您可以为此提取共享示例)
稍后您可以进行集成测试,当您提供此HTML以从“真实”源解析时(可能会再次使用webmock或其他内容)。