4

現在、ロードされる特定のライブラリ/モデルをチェックする rspec テストを実行しています。具体的には、オブジェクトを作成するときに、正しい Watir オブジェクトが返されることをテストしたいと考えています。FF と Chrome の場合は Watir::Browser、Safari の場合は Watir::Safari です。

すでにこれを試しました: ruby​​ クラスをアンロードしますが、定数を削除するだけで、これは私たちが望んでいるものではありません。

通常、これは問題になりませんが、safariwatir と watir-webdriver との互換性の問題のため、これは当てはまりません。次のエラーが発生します。

superclass mismatch for class UnknownObjectException

そして、これを「修正」するには、基本的にロードするWebドライバーを選択する必要があります(したがって、元のロジック-テストする予定です)

これを解決する方法はありますか?私たちのテストは、全体として実行されたときだけでなく、パスします。したがって、require の問題を回避するためだけに、基本的にステップをスキップする必要があります。

4

3 に答える 3

2

新しい Anser: NEWS FLASH webdriver が Safari をサポートするようになりました! safariwatir を捨てて、すべて webdriver で行います。今日のテスト自動化バザーでこれを見つけたばかりなので、詳細はあまりわかりません。.会議。

更新: Safari で動作させる方法に関する詳細は、 watir-webdriver ブログに掲載されています。

于 2012-03-24T06:51:44.877 に答える
0

「watir」gem が必要なときに条件付きロジックを使用して、これに似た処理を行ったので、環境の構成に基づいて 1 つのバージョンのみが必要になります。詳細については、おそらく watir テスト自動化バザーが終わった後に提供できます。少し時間があるので、コード サンプルをいくつか考えて掘り下げます。

于 2012-03-23T04:00:02.110 に答える
0

Ruby のクラスはオブジェクトですが、Ruby のクラス オブジェクトは定数として割り当てられるため、「実行/オブジェクト空間ごとに 1 つ」というクラスの概念が存在するだけです。

クラスは Theater モジュールで名前空間化されているため、オブジェクトのタイプを動的に確認できます。それだけでは不十分な場合は、ダックタイプできます。互換性の問題について言及したので、あるメソッドには存在しないが別のメソッドには存在しない (テストできる) メソッドや、それぞれに異なる値を返すメソッド (テストできる) があります。

于 2012-03-23T03:27:25.717 に答える