generateRandomKey() yöntemini ayrı bir sınıfa ayıklarsanız, Robolectric çalışırken "o rasgele" anahtarın girilmesi için sınamanın (ya da RoboGuice gibi bir şeyi kullanarak) o sınıfın kontrollü bir sürümünü enjekte edebilirsiniz. aslında bilinen bir değer. Ancak üretim kodunda hala rastgele.
Daha sonra etkinliğinizin yarattığı amacı yakalayabilir ve 'anahtar' beklenen test değerini içeriyorsa test edebilirsiniz.
Ancak, doğrudan soru ... cevap
Bir niyet (düğme tıklaması ile bu durumda) oluşturulan eğer test ediyorum ve ben
kullanmak doğru hedefe işaret
public static void assertButtonClickLaunchesActivity(Activity activity, Button btn, String targetActivityName) {
btn.performClick();
ShadowActivity shadowActivity = shadowOf(activity);
Intent startedIntent = shadowActivity.getNextStartedActivity();
ShadowIntent shadowIntent = shadowOf(startedIntent);
assertThat(shadowIntent.getComponent().getClassName(), equalTo(targetActivityName));
}
Teşekkür ederim, bu gerçekten yardımcı oluyor! – Freewind