[解決済み] AndroidJUnit4とActivityTestRuleをユニットテスト・クラスにインポートできないのはなぜですか?
2022-02-17 15:52:01
質問
Android UI テストフレームワークのクラスのインポートに問題があります。
これは私のクラスです。
@RunWith(AndroidJUnit4.class)
@LargeTest
public class ExampleUnitTest {
@Rule
public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule(MainActivity.class);
@Test
public void listGoesOverTheFold() {
onView(withText("Hello world!")).check(matches(isDisplayed()));
}
}
しかし、なぜか「cannot find symbol ActivityTestRule」と「cannot find symbol AndroidJUnit4」というエラーが表示されます。インポートしようとしたのですが、見つかりません。
build.gradleのdependenciesには、以下のように設定されています。
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
androidTestCompile 'com.android.support:support-annotations:23.4.0'
androidTestCompile 'com.android.support.test:runner:0.4'
androidTestCompile 'com.android.support.test:rules:0.4'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
だから、私はすべての依存関係を設定したと思う - 私は多くのことを試してきたが、運が悪かった。
どなたかお分かりになる方はいらっしゃいますか?
解決方法は?
Androidで設定できるテストは2種類あります。
ユニットテスト
- これらはJVM上で直接実行され、Androidフレームワークのクラスにはアクセスできません。
-
これらは
test/java
パッケージ -
依存関係は、build.gradleファイルにコマンドで追加する必要があります。
testCompile
- これらのテストには、一般的にMockito、Robolectric、JUnitを使用します。
インスツルメンテーションテスト
- Androidエミュレータ上で実行され、すべてのAndroidクラスにフルアクセスできます。
-
に保持されています。
androidTest/java
パッケージ -
依存関係は、build.gradleに以下のように追加する必要があります。
androidTestCompile
- 一般的に、これらのテストにはEspressoとJUnitを使用します。
私が知る限り、あなたは Espresso を使ってインスツルメンテーションテストを書こうとしていますが、そのテストは
test/java
パッケージはユニットテスト用です。 その場合、テストクラスを
androidTest/java
パッケージを使用します。
関連
-
[解決済み】OnFragmentInteractionListenerを実装する方法
-
[解決済み】AndroidのSSL接続でトラストアンカーが見つからない
-
[解決済み] 現在のテーマでスタイル 'coordinatorLayoutStyle' を見つけることができませんでした。
-
[解決済み】レンダリングの問題 レンダリング中に発生した例外:com/android/util/PropertiesMap [重複].
-
[解決済み】新しいAVDを作成すると、CPU/ABIフィールドに「システムイメージがインストールされていません」と表示される。
-
[解決済み] [Solved] java.lang.RuntimeException: アクティビティーのインスタンス化ができません ComponentInfo
-
[解決済み】アクティビティにない場所でのgetLayoutInflater()の呼び出し
-
[解決済み】Android 8:クリアテキストのHTTPトラフィックが許可されない
-
[解決済み] Android Fragment no view found for ID?
-
[解決済み] Android M パーミッション : shouldShowRequestPermissionRationale()関数の使用方法について混乱しています。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Android - SDKバージョン23のアップデート後、ACTION-VIEWインテントフィルタを持つアクティビティを少なくとも1つ追加する。
-
[解決済み】Android: Intent エラーを処理するアクティビティは見つかりませんでしたか?どのように解決するのか
-
[解決済み] [Solved] Unsupported method: ベースコンフィグ.getApplicationIdSuffix()
-
[解決済み】Bluestackの向きを変更する : ポートレート/ランドスケープモード
-
[解決済み】Build Tools リビジョン 23.0.1 の検索に失敗しました。
-
[解決済み】Android Studio。Android.support.design.widget.FloatingActionButton クラスを膨らませるのにエラーが発生する。
-
[解決済み】getCheckedRadioButtonId()が無駄なintを返す?
-
[解決済み] Looper.prepare()を呼び出していないスレッドではハンドラを作成できない
-
[解決済み] Gradle DSL メソッドが見つかりません:'compile()'
-
[解決済み] シンボル 'AndroidJUnit4' を解決できません。