Tôi muốn khẳng định rằng Acitivty mà tôi hiện đang thử nghiệm đã kết thúc khi thực hiện một số hành động nhất định. Thật không may cho đến nay tôi chỉ để khẳng định nó bằng cách thêm một số giấc ngủ vào cuối thử nghiệm. Có cách nào tốt hơn ?Espresso cách kiểm tra xem Hoạt động đã kết thúc chưa?
import android.content.Context;
import android.os.Build;
import android.support.test.rule.ActivityTestRule;
import android.test.suitebuilder.annotation.LargeTest;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import static org.junit.Assert.assertTrue;
@SuppressWarnings("unchecked")
@RunWith(JUnit4.class)
@LargeTest
public class MyActivityTest {
Context context;
@Rule
public ActivityTestRule<MyActivity> activityRule
= new ActivityTestRule(MyActivity.class, true, false);
@Before
public void setup() {
super.setup();
// ...
}
@Test
public void finishAfterSomethingIsPerformed() throws Exception {
activityRule.launchActivity(MyActivity.createIntent(context));
doSomeTesting();
activityRule.getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
fireEventThatResultsInTheActivityToFinishItself();
}
});
Thread.sleep(2000); // this is needed :(
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
assertTrue(activityRule.getActivity().isDestroyed());
}
}
}
Cảm ơn phản hồi của bạn. Tôi đoán tôi không đủ rõ ràng. Vấn đề của tôi là tôi không có hoạt động thứ hai hoặc hoạt động đầu tiên. Tôi chỉ có một Hoạt động. Vì vậy, tôi có thể sử dụng giải pháp của bạn chỉ khi tôi bắt đầu một hoạt động giả đầu tiên chỉ để có thể bắt đầu Activtiy của tôi mà tôi muốn kiểm tra từ đó .. – IHeartAndroid
để bạn có runnable và muốn làm điều gì đó sau khi nó kết thúc? –
Tôi muốn đảm bảo rằng hoạt động của mình bị đóng sau khi fireEventThatResultsInTheActivityToFinishItself(); được gọi là – IHeartAndroid