sto cercando di scrivere un test per verificare l'intenzione di lanciare con caffè espresso, il problema è che intendeva() non registra alcun intento.Espresso non fa registrare alcun intento se non ci sono pulsanti
ho questo test
@Test
public void shoulddosomething(){
startActivity();
intended(hasComponent(hasClassName(TemplatePictureCaptureActivity.class.getName())));
}
e nella mia attività ho questo codice
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(onRequestLayout());
Intent intent = new Intent(this, TemplatePictureCaptureActivity.class);
startActivity(intent);
}
Il risultato del test è questo.
android.support.test.espresso.base.DefaultFailureHandler$AssertionFailedWithCauseError: Wanted to match 1 intents. Actually matched 0 intents.
IntentMatcher: has component: has component with: class name: is "cat.helm.recertel.ui.templatepicturecapture.TemplatePictureCaptureActivity" package name: an instance of java.lang.String short class name: an instance of java.lang.String
Matched intents:[]
Recorded intents:[]
ho cercato di lanciare l'intento all'interno onClickListen e ha funzionato, ma senza di esso non posso farlo funzionare. Ho anche provato con le risorse al minimo senza fortuna. Sai come ottenere questo?
Provare ad attendere un po 'prima del previsto (hasComponent (hasClassName (TemplatePictureCaptureActivity.class.getName()))); – ozo
Ha funzionato grazie. Ma non è un cattivo odore di codice? – Borja
Io non la penso così. Immagino che la vista non sia ancora pronta mentre testiamo l'intento, Android sta ancora impostando la vista (setContentView (onRequestLayout())), ecco perché non riesce a trovare l'intento. Nel caso del clic del pulsante, si fa clic dopo aver impostato la vista. – ozo