मैं आज एक साधारण परीक्षण है:क्या कई परीक्षण विधियों के साथ एस्प्रेसो परीक्षण चलाने का कोई तरीका है लेकिन केवल एक सेटअप विधि है?
@RunWith(AndroidJUnit4.class)
@LargeTest
public class WhenNavigatingToUsersView {
@Rule
public ActivityTestRule<MainActivity> mActivityRule =
new ActivityTestRule(MainActivity.class);
private MainActivity mainActivity;
@Before
public void setActivity() {
mainActivity = mActivityRule.getActivity();
onView(allOf(withId(R.id.icon), hasSibling(withText(R.string.users)))).perform(click());
}
@Test
public void thenCorrectViewTitleShouldBeShown() {
onView(withText("This is the Users Activity.")).check(matches(isDisplayed()));
}
@Test
public void thenCorrectUserShouldBeShown() {
onView(withText("Donald Duck (1331)")).check(matches(isDisplayed()));
}
}
लेकिन हर परीक्षा पद्धति setActivity
चलाया जाता है, जो, आप 10-15 के तरीकों है, अंत में समय लगता है (यदि आप का एक बहुत कुछ है हो जाएगा के लिए विचार भी)।
@BeforeClass
काम नहीं कर रहा है क्योंकि यह स्थैतिक होना चाहिए और इस प्रकार ActivityTestRule
को स्थिर भी होना चाहिए।
तो क्या ऐसा करने का कोई और तरीका है? एक ही परीक्षण विधि में एकाधिक आवेषण होने की बजाय?
आप मेरी बात याद कर रहे हैं ... क्या कोई तरीका है कि प्रत्येक टेस्ट विधि के लिए व्यू इंटरैक्शन को परिभाषित न करें? मेरे लिए एक अच्छा यूनिट परीक्षण यह है कि एक परीक्षण विधि में प्रति परीक्षण केवल एक जोर होना चाहिए और सेटअप किसी अन्य विधि में किया जाना चाहिए। इस विचार पर विचार करें कि वे फ़ील्ड से भरे रहेंगे जो मैं सत्यापित करना चाहता हूं कि वे मौजूद हैं, तो प्रत्येक परीक्षण के लिए दृश्य के साथ बातचीत करना बहुत महंगा होगा। जब मैं केवल एक बार उस दृश्य को "खोलना" चाहता हूं और कई परीक्षण करता हूं। – peuhse
मुझे सेट एक्टिविटी में इंटरैक्शन और अन्य सामान क्यों नहीं दिखना चाहिए? एक बेहतर नाम सेटअप होगा या कुछ और परीक्षण के लिए सभी आवश्यक शर्तें जोड़ें। यह जूनिट में @ सबसे पहले कीवर्ड का इरादा है ... – peuhse