/var/log/messages

Sep 3, 2015 - 2 minute read - Comments - android

てくぶ本のテスツ関連試してみるなど (2)

Robolectric も確認してみました。ちょいハマりました。

手順としては

  • とりあえずハロワなプロジェクトを作る
  • build.gradle 修正して sync
  • AndroidStudio の設定
  • テストフォルダの作成
  • テストコード作成
  • 実行

というカンジなのですが、てくぶ本の記載のママでさくっとテスト成功、とは行きませんでした。とりあえずログを以下に列挙します。

とりあえず

Android Studio を 1.3.1 にしています。Build Variants で Test Artifact が選択できる版になっていないと駄目な模様。

次に build.gradle の dependencies に以下を追加。

    testCompile 'org.robolectric:robolectric:3.0'

testCompile という記述も Test Artifact が選択できる版になっていないと駄目なのかどうか。

sync したら Android Studio の設定を、との事で Build Variants を開いて Test Artifact を Unit Tests にしておく必要があるとのこと。

その後は

  • app/src/test/java/{package} なディレクトリを掘って
  • その中にテストコードを投入

すれば良いとのことだったのですが、その前にやっておく必要があるのが Run/Debug Configurations の設定でした。ぼくは

  • JUnit/ApplicationTest の Working Directory は空に
  • Defaults/JUnit の Working Directory を $MODULE_DIR$

という形にしましたが

  • JUnit/ApplicationText の Working Directory を $MODULE_DIR$

というのもアリなようです。

テストコード

とりあえず以下をでっちあげたのですが

{% gist ee7efe0b428749e1a36a %}

getString できません (詳細は忘却の彼方)、という不具合が出まして、いくつか確認する中で諸々のリソースを試験の中で参照するための設定を RobolectricTestRunner を継承したクラスで行ない、そのクラスを TextRunner として使う形の記述が必要、というドキュメントがあり、そこに沿った記述を盛り込んだところ、試験にパスしております。

{% gist d16f21884d453d697029 %}

テストコードの方では以下な記述に修正しておく必要があります。

@RunWith(CustomRobolectricTestRunner.class)

妹夫婦来沖 Espresso でハマッた件

comments powered by Disqus