-1

Rubyで書かれたHTMLパーサーのいくつかのテストを実装しようとしており、解析にNokogiriを使用しています.httpリクエストからの応答を取得します。

現在、テストはフィクスチャ (保存されている html ファイル) を使用しています。しかし、問題は、パーサーが正しく解析しないように、時々実際の応答が変化する (要素の ID またはクラスが変化する) ことです。ただし、静的フィクスチャを使用しているため、テストは引き続きパスします。

このような状況に対処するためのアプローチをお勧めできますか?

4

1 に答える 1

2

これを実現するには、次の 3 つの方法が考えられます。

  1. インターネットから新しいバージョンをダウンロードして HTML ファイルを更新する rake タスクを作成します。コンテンツを処理したい場合は、単に rake タスクを実行してからテストを実行してください。
  2. テストをライブにします。これは、テスト中にローカル ファイルを解析する代わりに、最新バージョンをダウンロードしてテストを実行することを意味します。
  3. 1 と 2 の混合です。テストを開始するときに、ENVなどのパラメータを設定できますLIVE=true。の場合LIVEtrue、コンテンツの最新バージョンをインターネットからダウンロードして、ローカルに保存します。次に、ダウンロードしたコンテンツを使用してテストを実行します。でテストを実行する場合LIVE=false、インターネットからコンテンツをダウンロードせず、ダウンロードしたコンテンツをそのまま使用します。

わかる?

それが役に立てば幸い!

于 2013-06-17T14:03:55.127 に答える