何をしたいか
DialogFragmentのUITestを記述する際にtestRuleにActivityを渡してダイアログ表示までの遷移部分を記述するのがどうにも面倒でダイアログだけを最初から開いて確認する方法がないか探していたところ解決したのでその共有記事です。
公式記事はこちら
https://developer.android.com/training/basics/fragments/testing?hl=ja
今回は最小の実装でDialogFragmentを対象として記述していきますので詳しいところは上記記事参照です。
testにはEspressoを使用しています。
方法
まずapp配下のbuild.gradleに下記を追加します。
dependencies{
debugImplementation 'androidx.fragment:fragment-testing:${version}'
}
次にテストメソッドで
@Test
fun test(){
val scenario = launchFragment<DialogFragment>()
scenario.recreate()
assertDisplayed(R.id.viewId, "text")
}
これで無事に通りました。超簡単