2015-06-26 80 views
3

我最近開始使用UIautomator來測試我的Android應用程序。在UIAutomator測試中引用資源標識符的最佳方式是什麼?

下面的代碼片段顯示的測試用例的代碼中一個典型的語句:

mDevice.findObject(By.res(BASIC_SAMPLE_PACKAGE, "editTextUserInput")) 
       .setText(STRING_TO_BE_TYPED); 

正如你所看到的,「editTExtUserInput」作爲字符串引用。在我的應用程序源代碼中,它被定義爲資源標識符(R.id.editTextUserInput)。

在目前的情況下,當我在我的應用程序中更改標識符的名稱時,我所有的測試用例都會變得混亂(我將不得不手動更改所有字符串值)...有沒有人有解決方案對於這個問題?

+1

你有沒有想過切換到[Espresso](https://developer.android.com/training/testing/ui-testing/espresso-testing.html)?與UIAutomator相比,使用單一應用程序界面測試更容易。 – ianhanniballake

+0

謝謝,我會研究Espresso框架。從第一眼看來,這對我的測試確實是一個更好的方法。 – Peter

回答

-1

Google的大部分Android測試團隊都花費了大量時間來構建Espresso,這是一種新的UI測試框架,專門用於簡化這些情況。例如,該行可能是

onView(withId(R.id.editTextUserInput)).typeText(STRING_TO_BE_TYPED); 

而標識符自動完成和重構等事情也會影響這些測試。

+0

這不回答問題。有時使用Espresso是不可能的,我們仍然需要依賴UiAutomator。我希望那裏的人可以弄清楚 – gorbysbm

+0

Espresso不適用於所有情況。這是與UiAutomator有關的問題。 –

+0

@ sid_09 - 不,這個問題是關於在你自己的用戶界面中測試一個字符串,這絕對是你用Espresso做的事情。如果問題是關於需要UIAutomator的東西(如跨應用程序集成測試),那麼這將是一個不同的問題和不同的答案。 – ianhanniballake

相關問題