Nokogiri을 사용하여 자동 생성 사이트에 올바른 정보와 하위 사이트가 있는지 확인합니다. 그것은 효과가 있지만 테스트 할 필요가 있습니다. 그렇게 할 좋은 방법이 확실하지 않습니다. 나의 현재 접근법은 내가 아는 온라인 사이트를 특정 정보를 가지고 찾아내는 것이다.웹 스크래핑 응용 프로그램을 테스트하는 방법은 무엇입니까?
예를 들어, 사이트의 테이블에있는 행 수를 시각적으로 확인한 다음 해당 테이블을 검사하는 함수가 해당 개수의 행을 반환하는지 테스트합니다. URL과 번호는 모두 하드 코드되어 있습니다. 사이트는 아마도 변경되지 않을 것이지만 불가능하지는 않습니다.이 경우 테스트가 명백히 실패합니다.
더 좋은 방법이 있습니까?
그냥 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
은 분명히이 간단한 예제가 아닌 실제 코드이지만,이 내가 그것을 접근 얼마나 당신의 가정을 확인하지 왜
정확성을 검사하는 더 좋은 도구는 [기계화] (https://github.com/sparklemotion/mechanize)입니다. 그것은 Nokogiri를 기반으로하지만, 페이지의 요소에 대해 알려주는 사전 작성된 메소드가 많이 있습니다. –