2016-06-08 22 views
5

Hoạt động của tôi đang lưu trữ hai Phân đoạn. Trong onCreate() tôi xác định phân đoạn nào sẽ được hiển thị.Hoạt động kiểm tra và phân đoạn cụ thể với espresso

@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() nâng niu mang về giao dịch và commiting đoạn ...

Đây là thử nghiệm lớp của tôi:

@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())); 
} 

}

Làm thế nào tôi có thể nói trong lớp học thử nghiệm mà Fragment nên được hiển thị?

Trả lời

8

Khởi tạo quy tắc của bạn không khởi động hoạt động tự động:

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

Sau đó khởi động hoạt động của bạn bằng tay và vượt qua trong một ý định mà bạn đang quan tâm:

Intent intent = new Intent(); 
intent.setAction(MainIntentService.ACTION_TARGET_OPENER); 
mNotesActivityTestRule.launchActivity(intent); 
Các vấn đề liên quan