Drupal 7 の DrupalWebTestCase のメソッドまとめ

Drupal 7 には仮想ブラウザを使った自動テストのための DrupalWebTestCase というテストクラスがデフォルトで用意されています。

ただ、 DrupalWebTestCase には驚くほどたくさんの便利機能が備わってはいるのですが、主な利用者がコアコントリビュータの人たちにかぎられるためか、(英語で検索しても)わかりやすく解説している資料があまり見つかりません。 英語でその状況なのでいわんや日本語は・・・

せめて日本語で書かれたメソッド一覧などが手元にあると作業の捗り具合が違ってくるような気がするので、この度 DrupalWebTestCase のメソッド一覧表をかんたんに翻訳してみました。

原文はこちらです。

名前 可視性 タイプ 説明
DrupalTestCase ::$assertions protected プロパティ テストケースで投げられるアサーション。
DrupalTestCase ::$databasePrefix protected プロパティ このテストランのデータベースプリフィックス。
DrupalTestCase ::$originalFileDirectory protected プロパティ テスト用途に変更される前のオリジナルファイルディレクトリ。
DrupalTestCase ::$results public プロパティ このテストケースの現在の結果。
DrupalTestCase ::$setup protected プロパティ テストがセットアップされたかどうかを示すフラグ。
DrupalTestCase ::$setupDatabasePrefix protected プロパティ テスト用のデータベースプリックスがセットアップされたかどうかを示すフラグ。
DrupalTestCase ::$setupEnvironment protected プロパティ テスト用の環境がセットアップされたかどうかを示すフラグ。
DrupalTestCase ::$skipClasses protected プロパティ このクラスはアサーションのソースを探すときにスキップされる。
DrupalTestCase ::$testId protected プロパティ テストラン ID 。
DrupalTestCase ::$timeLimit protected プロパティ テストのタイムリミット。
DrupalTestCase ::assert protected 関数 内部ヘルパー: アサートを保持する。
DrupalTestCase ::assertEqual protected 関数 2 つの値が等しいかどうかをチェックする。訳注: `==` 比較。
DrupalTestCase ::assertFalse protected 関数 値が false (空文字列 / 0 / NULL / FALSE )かどうかをチェックする。
DrupalTestCase ::assertIdentical protected 関数 2 つの値が同一かどうかをチェックする。訳注: `===` 比較。
DrupalTestCase ::assertNotEqual protected 関数 2 つの値が等しくないかどうかをチェックする。
DrupalTestCase ::assertNotIdentical protected 関数 2 つの値が同一かどうかをチェックする。
DrupalTestCase ::assertNotNull protected 関数 値が NULL ではないかどうかをチェックする。
DrupalTestCase ::assertNull protected 関数 値が NULL かどうかをチェックする。
DrupalTestCase ::assertTrue protected 関数 値が false (空文字列 / 0 / NULL / FALSE )でないかどうかをチェックする。
DrupalTestCase ::deleteAssert public static 関数 メッセージ ID でアサーションレコードを削除する。
DrupalTestCase ::error protected 関数 エラーアサーションをあげる。
DrupalTestCase ::errorHandler public 関数 テストラン中にエラーを処理する。
DrupalTestCase ::exceptionHandler protected 関数 例外を処理する。
DrupalTestCase ::fail protected 関数 常にネガティブとなるアサーションをあげる。
DrupalTestCase ::generatePermutations public static 関数 パラメータのリストを順列のスタックに変換する。
DrupalTestCase ::getAssertionCall protected 関数 アサーションではない最初のメソッドが見つかるまでバックトレースを巻き戻す。
DrupalTestCase ::getDatabaseConnection public static 関数 Simpletest を実行しているサイトのデータベースコネクションを返す。
DrupalTestCase ::insertAssert public static 関数 テストコンテクストの外からアサーションを保持する。
DrupalTestCase ::pass protected 関数 常にポジティブとなるアサーションをあげる。
DrupalTestCase ::randomName public static 関数 文字と数字を含むランダムな文字列を生成する。
DrupalTestCase ::randomString public static 関数 ASCII 文字( 32 から 126 までのコード)からなるランダムな文字列を生成する。
DrupalTestCase ::run public 関数 このクラスのすべてのテストを実行する。
DrupalTestCase ::verbose protected 関数 verbose メッセージをテキストファイルに記録する。
DrupalWebTestCase ::$additionalCurlOptions protected プロパティ 追加の cURL オプション。
DrupalWebTestCase ::$content protected プロパティ 内部ブラウザで現在読み込まれているページのコンテンツ。
DrupalWebTestCase ::$cookieFile protected プロパティ cURL で使用される現在のクッキーファイル。
DrupalWebTestCase ::$cookies protected プロパティ 内部ブラウザで現在読み込まれているページのクッキー。
DrupalWebTestCase ::$curlHandle protected プロパティ 現在の cURL 接続のハンドル。
DrupalWebTestCase ::$drupalSettings protected プロパティ 内部ブラウザで現在読み込まれているページの JavaScript 変数 Drupal.settings の値。
DrupalWebTestCase ::$elements protected プロパティ ページのパース済みバージョン。
DrupalWebTestCase ::$generatedTestFiles protected プロパティ ファイルがテストファイルディレクトリにコピーされたかどうか。
DrupalWebTestCase ::$headers protected プロパティ 内部ブラウザで現在読み込まれているページのヘッダ。
DrupalWebTestCase ::$httpauth_credentials protected プロパティ HTTP 認証情報( `<username>:<password>` )。
DrupalWebTestCase ::$httpauth_method protected プロパティ HTTP 認証メソッド。
DrupalWebTestCase ::$loggedInUser protected プロパティ 内部ブラウザを使用するログイン済みのカレントユーザ。
DrupalWebTestCase ::$originalShutdownCallbacks protected プロパティ テスト用途に削除される前のオリジナルのシャットダウンハンドラの配列。
DrupalWebTestCase ::$originalUser protected プロパティ テスト用途にまっさらな uid = 1 に変更される前のオリジナルのユーザ。
DrupalWebTestCase ::$plainTextContent protected プロパティ 内部ブラウザで現在読み込まれているページのコンテンツ(プレーンテキストバージョン)。
DrupalWebTestCase ::$profile protected プロパティ テストのベースとしてインストールするプロファイル。
DrupalWebTestCase ::$redirect_count protected プロパティ リクエストハンドリング中に追われたリダイレクトの数。
DrupalWebTestCase ::$session_id protected プロパティ 現在のセッション ID (存在する場合)。
DrupalWebTestCase ::$session_name protected プロパティ 現在のセッション名(存在する場合)。
DrupalWebTestCase ::$url protected プロパティ 内部ブラウザで現在読み込まれている URL 。
DrupalWebTestCase ::assertField protected 関数 指定された名前または ID のフィールドが存在することをアサートする。
DrupalWebTestCase ::assertFieldById protected 関数 指定された ID と値のフィールドが現在のページに存在することをアサートする。
DrupalWebTestCase ::assertFieldByName protected 関数 指定された名前と値のフィールドが現在のページに存在することをアサートする。
DrupalWebTestCase ::assertFieldByXPath protected 関数 指定された XPath で現在のページにフィールドが存在することをアサートする。
DrupalWebTestCase ::assertFieldChecked protected 関数 現在のページ内のチェックボックスフィールドにチェックが入っていることをアサートする。
DrupalWebTestCase ::assertLink protected 関数 指定されたラベルのリンクが見つかったらパスする。オプションでインデックスを指定可。
DrupalWebTestCase ::assertLinkByHref protected 関数 指定された href を含むリンクが見つかったらパスする。
DrupalWebTestCase ::assertMail protected 関数 直近に送信されたメールのメッセージに指定された値が入っていることをアサートする。
DrupalWebTestCase ::assertMailPattern protected 関数 直近に送信されたメールのメッセージに指定されたパターンが入っていることをアサートする。
DrupalWebTestCase ::assertMailString protected 関数 直近に送信されたメールのメッセージに指定された文字列が入っていることをアサートする。
DrupalWebTestCase ::assertNoDuplicateIds protected 関数 各 HTML ID が単一の要素にのみ使われていることをアサートする。
DrupalWebTestCase ::assertNoField protected 関数 指定された名前または ID のフィールドが存在しないことをアサートする。
DrupalWebTestCase ::assertNoFieldById protected 関数 指定された ID と値のフィールドが現在のページに存在しないことをアサートする。
DrupalWebTestCase ::assertNoFieldByName protected 関数 指定された名前と値のフィールドが現在のページに存在しないことをアサートする。
DrupalWebTestCase ::assertNoFieldByXPath protected 関数 指定された XPath で現在のページにフィールドが存在しないことをアサートする。
DrupalWebTestCase ::assertNoFieldChecked protected 関数 現在のページ内のチェックボックスフィールドにチェックが入っていないことをアサートする。
DrupalWebTestCase ::assertNoLink protected 関数 指定されたラベルのリンクが見つからなかったらパスする。
DrupalWebTestCase ::assertNoLinkByHref protected 関数 指定された href を含むリンクが見つからなかったらパスする。
DrupalWebTestCase ::assertNoOptionSelected protected 関数 現在のページのセレクトオプションがチェックされていなかいことをアサートする。
DrupalWebTestCase ::assertNoPattern protected 関数 Perl 正規表現パターンが生のコンテンツに入っていなければパスする。
DrupalWebTestCase ::assertNoRaw protected 関数 読み込まれたページに生のテキストが入っていなければパスする。そうでなければ失敗する。生のテキストとは、ページが生成した生 HTML のことを指す。
DrupalWebTestCase ::assertNoResponse protected 関数 指定されたレスポンスコードをページが返さなければアサートする。
DrupalWebTestCase ::assertNoText protected 関数 ページのテキストバージョンに特定のテキストが見つからなければパスする。テキストバージョンとは、ウェブブラウザを通じてユーザが見るもののこと。言い換えると、 HTML がコンテンツからフィルタアウトされたもの。
DrupalWebTestCase ::assertNoTitle protected 関数 ページタイトルが指定された文字列でなければパスする。
DrupalWebTestCase ::assertNoUniqueText protected 関数 ページのテキストバージョンに指定されたテキストが 2 回以上見つかったらパスする。
DrupalWebTestCase ::assertOptionSelected protected 関数 現在のページのセレクトオプションがチェックされていることをアサートする。
DrupalWebTestCase ::assertPattern protected 関数 Perl 正規表現パターンが生のコンテンツに見つかったらパスする。
DrupalWebTestCase ::assertRaw protected 関数 読み込まれたページに生のテキストが見つかったらパスする。見つからなかったら失敗する。生のテキストとはページが生成した生 HTML のことを指す。
DrupalWebTestCase ::assertResponse protected 関数 ページが指定されたレスポンスコードでレスポンスを返すことをアサートする。
DrupalWebTestCase ::assertText protected 関数 特定のテキストがページのテキストバージョンに見つかったらパスする。テキストバージョンとはブラウザを通してユーザが見るもののこと。言い換えると、コンテンツから HTML がフィルタアウトされたもの。
DrupalWebTestCase ::assertTextHelper protected 関数 asserText() と assertNoText() のヘルパー。
DrupalWebTestCase ::assertThemeOutput protected 関数 テーマ出力をアサートする。
DrupalWebTestCase ::assertTitle protected 関数 ページタイトルが指定された文字列であればパスする。
DrupalWebTestCase ::assertUniqueText protected 関数 ページのテキストバージョンに指定されたテキストが一度だけ見つかればパスする。
DrupalWebTestCase ::assertUniqueTextHelper protected 関数 assertUniqueText() と assertNoUniqueText() のヘルパー。
DrupalWebTestCase ::assertUrl protected 関数 内部ブラウザの URL が指定されたパスに一致すればパスする。
DrupalWebTestCase ::buildXPathQuery protected 関数 XPath クエリを構築する。
DrupalWebTestCase ::changeDatabasePrefix protected 関数 データベースコネクションをプリフィックス付きのものに変更する。
DrupalWebTestCase ::checkForMetaRefresh protected 関数 メタリフレッシュタグをチェックし存在すれば drupalGet() を再帰的に呼び出す。この関数は「 Refresh 」にセットする http-equiv 属性を探す。ケースセンシティブ。
DrupalWebTestCase ::checkPermissions protected 関数 権限の配列が正しいものであることをチェックする。
DrupalWebTestCase ::clickLink protected 関数 ラベルでリンクを辿る。
DrupalWebTestCase ::constructFieldXpath protected 関数 ヘルパー関数: 指定された属性と値のセットを持つ XPath を構築する。
DrupalWebTestCase ::cronRun protected 関数 Simpletest でインストールされた Drupal で cron を実行する。
DrupalWebTestCase ::curlClose protected 関数 cURL ハンドラを閉じ、ハンドラをアンセットする。
DrupalWebTestCase ::curlExec protected 関数 cURL リクエストを初期化し実行する。
DrupalWebTestCase ::curlHeaderCallback protected 関数 ヘッダを読み、テストサイトから受け取ったエラーを登録する。
DrupalWebTestCase ::curlInitialize protected 関数 cURL コネクションを初期化する。
DrupalWebTestCase ::drupalCompareFiles protected 関数 2 つのファイルのサイズとファイル名を比較する。
DrupalWebTestCase ::drupalCreateContentType protected 関数 デフォルト設定でカスタムコンテンツタイプを作成する。
DrupalWebTestCase ::drupalCreateNode protected 関数 デフォルト設定でノードを作成する。
DrupalWebTestCase ::drupalCreateRole protected 関数 指定された権限を持つロールを作成する。
DrupalWebTestCase ::drupalCreateUser protected 関数 指定されたパーミッションセットを持つユーザを作成する。
DrupalWebTestCase ::drupalGet protected 関数 Drupal パスまたは絶対パスのコンテンツを取得する。
DrupalWebTestCase ::drupalGetAJAX protected 関数 Drupal パスまたは絶対パスのコンテンツを取得し、結果を JSON デコードする。
DrupalWebTestCase ::drupalGetContent protected 関数 リクエストされたページの生 HTML を取得する。
DrupalWebTestCase ::drupalGetHeader protected 関数 HTTP レスポンスヘッダの値を取得する。ページを取得するのに複数のリクエストが必要な場合、デフォルトでは最後のリクエストのヘッダのみがチェックされる。しかし、第 2 引数に TRUE が渡されるとすべてのリクエストが処理される。
DrupalWebTestCase ::drupalGetHeaders protected 関数 リクエストされたページの HTTP レスポンスヘッダを取得する。通常は最後のリクエストで戻ってきたヘッダにのみ関心があるが、ページリダイレクトが起こったり HTTP 認証が使われたりする場合は複数のリクエストが必要となる。
DrupalWebTestCase ::drupalGetMails protected 関数 テストケースの間に送信されたすべてのメールを含む配列を取得する。
DrupalWebTestCase ::drupalGetNodeByTitle 関数 タイトルを指定してデータベースからノードを取得する。
DrupalWebTestCase ::drupalGetSettings protected 関数 現在読み込まれたページの JavaScript 変数 Drupal.settings の値を取得する。
DrupalWebTestCase ::drupalGetTestFiles protected 関数 テストで使用できるテストファイルを取得する。
DrupalWebTestCase ::drupalGetToken protected 関数 現在ログイン中のユーザのためのトークンを生成する。
DrupalWebTestCase ::drupalHead protected 関数 Drupal パスまたは絶対パスのヘッダのみを取得する。
DrupalWebTestCase ::drupalLogin protected 関数 内部ブラウザでユーザをログインさせる。
DrupalWebTestCase ::drupalLogout protected 関数 現在のユーザをログアウトする。
DrupalWebTestCase ::drupalPost protected 関数 Drupal ページに対する POST リクエストを実行する。これは SimpleBrowser での通常の POST リクエストとなる。
DrupalWebTestCase ::drupalPostAJAX protected 関数 Ajax 送信を実行する。
DrupalWebTestCase ::drupalSetContent protected 関数 生の HTML コンテンツをセットする。これは内部ブラウザの外側でページがフェッチされ、それに対してアサーションが必要な場合に有用となる。
DrupalWebTestCase ::drupalSetSettings protected 関数 現在読み込まれたページの JavaScript 変数 Drupal.settings の値をセットする。
DrupalWebTestCase ::getAbsoluteUrl protected 関数 パスを受け取り絶対パスを返す。
DrupalWebTestCase ::getAllOptions protected 関数 セレクトボックスのすべてのオプション要素を取得する。ネストされた要素も含む。
DrupalWebTestCase ::getSelectedItem protected 関数 セレクトフィールドから選択された値を取得する。
DrupalWebTestCase ::getUrl protected 関数 cURL ハンドラから現在の URL を取得する。
DrupalWebTestCase ::handleForm protected 関数 drupalPost() に関連したフォーム要素を扱う。指定されたフィールドが存在することを確認し、特定のフィールドタイプに対する正しい方法で POST データの作成を試みる。
DrupalWebTestCase ::parse protected 関数 DOM と SimpleXML を使って curlExec から返ってきたコンテンツをパースする。
DrupalWebTestCase ::preloadRegistry protected 関数 テストサイトからレジストリをプリロードする。
DrupalWebTestCase ::prepareDatabasePrefix protected 関数 テスト実行のためのデータベースプリフィックスを生成する。
DrupalWebTestCase ::prepareEnvironment protected 関数 テスト実行のための現在の環境を用意する。
DrupalWebTestCase ::refreshVariables protected 関数 変数のインメモリのセットをリフレッシュする。異なるスレッドで変数を変更するページリクエストの後で使用すると有用。
DrupalWebTestCase ::resetAll protected 関数 新しいモジュールを有効化した後にすべてのデータ構造をリセットする。
DrupalWebTestCase ::setUp protected 関数 ファンクショナルテストとインテグレーションテストのために Drupal サイトをセットアップする。
DrupalWebTestCase ::tearDown protected 関数 作成されたファイルと一時ファイルディレクトリを削除する。 setUp() で作成されたテーブルを削除し、データベースプリフィックスをリセットする。
DrupalWebTestCase ::verboseEmail protected 関数 直近に送信された $count 個のメールを出力する。
DrupalWebTestCase ::xpath protected 関数 内部ブラウザのコンテンツで xpath 検索を実行する。検索はページのルート要素(通常は HTML タグ)からの相対。
DrupalWebTestCase ::__construct 関数 コンストラクタ。

以上です。

GitHub gist 版を以下の場所に置いているので DrupalWebTestCase を使いたい/日頃使っている方はよろしければどうぞ。

DrupalWebTestCase は動作がもっさりしているのがなかなか辛いところではありますが、 Drupal 7 + PHPUnit + CasperJS でテストすると「それはもう一苦労!」となるようなところでもわずかなコードでテストできてしまうのでいざというときに助かります。

ありがたやー。