Próbuję napisać test, aby zweryfikować zamiar uruchomienia z espresso, problem polega na tym, że przeznaczony() nie rejestruje żadnego zamiaru.Espresso nie zapisuje żadnych zamiarów, jeśli nie ma przycisków
mam ten test
@Test
public void shoulddosomething(){
startActivity();
intended(hasComponent(hasClassName(TemplatePictureCaptureActivity.class.getName())));
}
iw mojej aktywności Mam ten kod
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(onRequestLayout());
Intent intent = new Intent(this, TemplatePictureCaptureActivity.class);
startActivity(intent);
}
Wynik testu jest następująca.
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:[]
Próbowałem uruchomić intencji wewnątrz onClickListen i to działało, ale bez niego nie mogę zmusić go do pracy. Próbowałem też bezczynnie korzystać z zasobów bez powodzenia. Czy wiesz, jak to osiągnąć?
Spróbuj trochę poczekać przed zamierzonym (hasComponent (hasClassName (TemplatePictureCaptureActivity.class.getName()))); – ozo
To zadziałało dzięki. Ale czy to nie jest zły zapach kodu? – Borja
Nie sądzę. Domyślam się, że widok nie jest jeszcze gotowy podczas testowania intencji, Android wciąż ustawia widok (setContentView (onRequestLayout())), dlatego nie może znaleźć intencji. W przypadku kliknięcia przycisku kliknięcie następuje po ustawieniu widoku. – ozo