このページにスクリプトエラーがあります。サイト編集者によって解決されるまでの間は、以下の部分的な内容のみが表示可能です。
この記事は編集レビューを必要としています。ぜひご協力ください。
{{ FirefoxOSSidebar }}
自動テストでは、多くの場合、抽象コードに app
のオブジェクトを使用します。これは、コードとロケータの重複を減らすことができます。コードの共通部分を変更する必要がある場合、むしろ10または20テストファイルでそれを変更することよりも、単一の app
のオブジェクトに変更することができます。この記事では、app
のオブジェクトを使用する方法の基礎を提供します。
アプリオブジェクト: 入門
app
オブジェクトは、メソッド、ページ上のアクションを表すプロパティを含むPythonのクラスです。理論的な例では、これらを使用する方法を見てみましょう。
homepage.py
下記はいくつかの含まれている擬似コードとともに、ホームページのアプリのために使用する場合があるフレームです。
class Homepage: __init__(self, marionette): # Marionette is passed in so that the object can use it self.marionette = marionette def switch_to_homepage_frame(self): # Code for switching to System then to Homepage frame def tap_contacts_icon(self): # Code to tap the icon # Switch to Contacts frame # Now we return the Contacts app object as it has focus from contacts import Contacts return Contacts(self.marionette)
contacts.py
そしてここでいくつかの擬似コードで再度、連絡先アプリに使用するかもしれないものです。
class Contacts: _new_contact_button = (By.ID, ‘id’) def tap_new_contact(self): # Tap new contact icon # Wait for event def type_given_name(self, name_string): # element.send_keys(name_string)
test_contacts.py
これはテストのコンテキストでどのように機能するかを理解するために、下記はHomepage
のクラスを利用した迅速なサンプルです。:
from homepage import Homepage def test_add_contact(self): homepage = Homepage(self.marionette) homepage.switch_to_homepage_frame() contacts = homepage.tap_contacts_icon() contacts.tap_new_contact()
テストを更新
ここからは、新しいアプリケーションのオブジェクトシステムを使用するようにテストのすべてのファイルを更新するために挑戦したいと思います。
これは困難な作業であり、Pythonのクラス構造に慣れていない場合は、参照とコードサンプルのためのいくつかの書籍を参照する必要があります。
完了したら、理想的には、テストファイル間の明確な分離を持っています:
TestBase
は、setUp()
とtearDown()
メソッドを含みます。app
オブジェクトはページの相互作用とロケータが含まれています- テストファイルは、単にテスト手順が含まれます。
がんばろう!