あなたのAndroidアプリを回帰テストのためのエスプレッソで気密にリリースしてください
しばしば開発者として働いている間、我々は通常より多くの注意を必要とする問題に打たれます.
そのような状況の間、私の先輩は私を助けてくれましたが、初めてエスプレッソを使っていたので、私は自分自身を助けなければなりませんでした.
ところで、Anubhavここでは、少しガイドでは、簡単に旅を航海する.
ゴール.
エスプレッソテスト中に活動を開始する前に、共有設定を設定します.
なぜ?
私たちのAndroidアプリケーションでは、オンボードの間、ユーザーはいくつかの選択された項目を保存し、それらに基づいて、それらのコンテンツを取得します.
Androidでは、計器テスト(UIテストというだけの空想的な名前)を実行している間、設定を設定する必要があります.そうでなければ、選択された項目がないというダイアログボックスが表示され、テストが失敗します.
解決策
1アクティビティテスト規則の使用
アクティビティテスト規則を使用している場合は、共有設定の設定を簡単にサポートできます.
アクティビティを初期化できますが起動しません.アクティビティーが始まる前に共有設定を設定したいので、これは非常に重要です.
アクティビティテストクラス 初期タッチモード 起動アクティビティ 起動アクティビティーをfalseに設定しているので、アクティビティは初期化されますが起動されず、その間に共有設定を設定できます.
アクティビティシナリオ規則の使用
基本的なもの:AndroidのテストサポートライブラリとRobolElectricでのライフサイクルを管理する活動のシナリオは、Android Xのテストライブラリの一部です. を使用してください 連鎖ルールを使う
怠惰活動シナリオ規則
Medium Article for reference
私はこれをテストする機会がなかったが、それは私にかなり有望に見えます.ブログをチェックアウトします.
連鎖規則
連鎖ルールを使用するのと同じくらい簡単です
ここで何が起こっているのですか.(魔法)
つのルールが定義されています. アクティビティシナリオ エスプレッソ共有設定ルール 外側のルールは最初に実行されるように構成され、内部の1つが動作し、これは私たちがそれらを連鎖している方法です.
したがって、それは我々のエスプレッソ共有選好が最初に実行されて、我々の活動が開始されることを保証します.
そのような状況の間、私の先輩は私を助けてくれましたが、初めてエスプレッソを使っていたので、私は自分自身を助けなければなりませんでした.
ところで、Anubhavここでは、少しガイドでは、簡単に旅を航海する.
ゴール.
エスプレッソテスト中に活動を開始する前に、共有設定を設定します.
なぜ?
私たちのAndroidアプリケーションでは、オンボードの間、ユーザーはいくつかの選択された項目を保存し、それらに基づいて、それらのコンテンツを取得します.
Androidでは、計器テスト(UIテストというだけの空想的な名前)を実行している間、設定を設定する必要があります.そうでなければ、選択された項目がないというダイアログボックスが表示され、テストが失敗します.
解決策
1アクティビティテスト規則の使用
Rules are used to add additional functionality which applies to all tests within a test class, but more generically.
アクティビティテスト規則を使用している場合は、共有設定の設定を簡単にサポートできます.
アクティビティを初期化できますが起動しません.アクティビティーが始まる前に共有設定を設定したいので、これは非常に重要です.
@Rule
public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(
MainActivity.class,
true,
false);
ここで3つのパラメータが関数に渡されます@Before
fun setUp(){
val prefs: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(
getInstrumentation().targetContext
)
val editor = prefs.edit()
editor.clear().apply()
}
そして、我々は我々の意志で活動を始めることができます. @Test
fun populateUsernameFromSharedPrefsTest() {
// Launch activity
mActivityRule.launchActivity(new Intent())
onView(withId(R.id.textview_account_username))
.check(matches(isDisplayed()))
.check(matches(withText(testUsername)))
}
しかし、この関数は推奨されないので、より良いオプションを探していました.アクティビティシナリオ規則の使用
基本的なもの:AndroidのテストサポートライブラリとRobolElectricでのライフサイクルを管理する活動のシナリオは、Android Xのテストライブラリの一部です.
怠惰活動シナリオ規則
Medium Article for reference
私はこれをテストする機会がなかったが、それは私にかなり有望に見えます.ブログをチェックアウトします.
連鎖規則
連鎖ルールを使用するのと同じくらい簡単です
@Rule
fun chain(): TestRule = RuleChain.outerRule(EspressoSharedPreferenceSetupRule()).around(ActivityScenarioRule(MainActivity::class.java))
ここでは、単純なテストルールクラスです.class EspressoSharedPreferenceSetupRule : TestRule {
override fun apply(base: Statement?, description: Description?): Statement? {
val prefs: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(
InstrumentationRegistry.getInstrumentation().targetContext
)
val editor = prefs.edit()
editor.clear().apply()
// do something here
)
editor.apply()
return base
}
}
ここで何が起こっているのですか.(魔法)
つのルールが定義されています.
したがって、それは我々のエスプレッソ共有選好が最初に実行されて、我々の活動が開始されることを保証します.
Feel Free to connect with me or comment down below If you found this interesting.
Reference
この問題について(あなたのAndroidアプリを回帰テストのためのエスプレッソで気密にリリースしてください), 我々は、より多くの情報をここで見つけました https://dev.to/maanuanubhav999/writing-espresso-tests-15pテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol