2016-06-08 15 views
5

के साथ परीक्षण गतिविधि और विशिष्ट खंड, मेरी गतिविधि दो टुकड़ों की मेजबानी कर रही है। ऑनक्रेट() में मैं निर्धारित करता हूं कि कौन सा टुकड़ा दिखाया जाएगा।एस्प्रेसो

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_login); 
    handleIntent(getIntent()); 
} 


private void handleIntent(Intent intent) { 
    LogUtils.d(TAG, "handleIntent action=" + intent.getAction()); 
    if (MainIntentService.ACTION_TARGET_OPENER.equals(intent.getAction())) { 
     loadOpener(); 
    } else if (MainIntentService.ACTION_TARGET_LOGIN.equals(intent.getAction())) { 
     loadLogin(); 
    } else { 
     //noop 
    } 
} 

private void loadOpener() { 
    OpenerFragment openerFragment = OpenerFragment.newInstance(); 
    loadFragment(R.id.frame_fragment_container, openerFragment, true); 
} 

loadFragment() लेन-देन और करने से टुकड़ा की ले देखभाल ...

यह मेरा परीक्षण क्लास है:

@RunWith(AndroidJUnit4.class) 
@LargeTest 
public class LoginScreenTest { 


@Rule 
public ActivityTestRule<LoginActivity> mNotesActivityTestRule = 
     new ActivityTestRule<>(LoginActivity.class); 


@Test 
public void clickAddNoteButton_opensAddNoteUi() throws Exception { 
    onView(withId(R.id.button_login_submit)).perform(click()); 
    onView(withId(R.id.text_login)).check(matches(isDisplayed())); 
} 

}

मैं कैसे बता सकता टेस्ट क्लास में कौन सा टुकड़ा दिखाया जाना चाहिए?

उत्तर

8

अपने नियम इन्स्तांत स्वचालित रूप से गतिविधि शुरू नहीं करने के लिए:

@Rule 
    public ActivityTestRule<LoginActivity> mNotesActivityTestRule = 
     new ActivityTestRule<>(LoginActivity.class, false, false); 

फिर अपनी गतिविधि मैन्युअली लॉन्च करने और एक आशय है कि आप में रुचि रखते हैं में पारित:

Intent intent = new Intent(); 
intent.setAction(MainIntentService.ACTION_TARGET_OPENER); 
mNotesActivityTestRule.launchActivity(intent); 
संबंधित मुद्दे