2012-05-30 5 views
1

Я пытаюсь подтолкнуть свои тесты к взаимодействию между действиями и проверить, что, например, после правильного входа в систему, я создаю правильную деятельность (из 2 возможных операций).Цепочные действия в тестах robolectric

Вот что мой код выглядит следующим образом:

@RunWith(GuiceRobolectricJUnitRunner.class) 
public class LoginActivityTest { 
@Inject 
private LoginActivity activity; 
@Inject 
private ExplorerActivity startedActivity ; 
@Inject 
private Context context; 

private Button loginButton; 
private EditText login; 
private EditText password; 

@Before 
public void setUp() throws Exception { 
    activity.onCreate(null); 
    loginButton = (Button) activity.findViewById(R.id.identification_login_button); 
    login = (EditText) activity.findViewById(R.id.txtLogin); 
    password = (EditText) activity.findViewById(R.id.txtPassword); 

} 

@Online 
@Test 
public void shouldExploreWhenLoginIsCorrect() throws Exception { 
    assertNotNull(activity); 
    login.setText("[email protected]"); 
    password.setText("test"); 
    activity.setIntent(new Intent()); 
    loginButton.performClick(); 
    ShadowActivity shadowActivity = Robolectric.shadowOf(activity); 
    Intent startedIntent = shadowActivity.getNextStartedActivity(); 
    ShadowIntent shadowIntent = Robolectric.shadowOf(startedIntent); 
    assertEquals(shadowIntent.getIntentClass(), ExplorerActivity.class); 
//  startedActivity.setIntent(startedIntent); 
//  startedActivity.onCreate(null); 


    } 
} 

Моя проблема заключается в том, что я не могу получить начатую деятельность с shadowintent. Есть ли способ добиться чего-то подобного? Кроме того, я не вижу anytrace моей активности explorer, и мне было интересно, работает ли Robolectric в песочнице каждый процесс нереста. Мне бы очень понравился пример цепных тестов активности в робоэлектрике. Благодарю.

ответ

4

Поскольку было 3 месяца назад, возможно, вы уже нашли свой ответ, если нет, вы можете использовать newInstance() на том, что у вас уже есть, а затем продолжить движение в соответствии с нормальным.

ExplorerActivity explorerActivity = (ExplorerActivity) shadowIntent.getIntentClass().newInstance(); 
explorerActivity.setIntent(startedIntent); 
explorerActivity.onCreate(null);