eri*_*icn 5 java android android-espresso
我有几个类来测试深层链接.每个班级测试1个深层链接.
当我单独运行时,很少有测试总是在10秒以上正确终止,但是当我一起运行它们时总是花费超过45秒完成.

请注意,所有这些测试现在都应该失败(我还没有完成它们的实现)所以结果不应该变化.
我用IdlingPolicies.setIdlingResourceTimeout错了吗?
我的考试班:
@RunWith(AndroidJUnit4.class)
public class DeepLinkActivityBagTest extends MyActivityTest {
@Rule
public MyActivityTestRule<DeepLinkActivity> activityTestRule =
new MyActivityTestRule<DeepLinkActivity>(DeepLinkActivity.class) {
@Override
protected Intent getActivityIntent() {
Intent intent = super.getActivityIntent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("xxx://bag"));
return intent;
}
};
@Test
public void testCorrectScreenOpened() {
setUpWait();
String expectedToolbarTitle = "shopping bag" + mToolbarTitleSuffix;
onView(withTextIgnoreCase(expectedToolbarTitle)).check(matches(isDisplayed()));
}
}
Run Code Online (Sandbox Code Playgroud)
它的父类:
@RunWith(AndroidJUnit4.class)
public class MyActivityTest {
@Rule
public MyActivityTestRule<DeepLinkActivity> activityTestRule;
protected String mToolbarTitleSuffix;
@Before
public void prepare() {
if (!BuildConfig.FLAVOR.equals(ENV_PRODUCTION)) {
mToolbarTitleSuffix = String.format(" (%s)", BuildConfig.FLAVOR);
}
}
@After
public void resetCountry() {
if (activityTestRule != null) {
PrefUtils.clear(InstrumentationRegistry.getTargetContext());
PrefUtils.setCurrentCountryCode(activityTestRule.getmCurCountryCode());
PrefUtils.setCurrentLangCode(activityTestRule.getmCurLangCode());
}
}
protected void setUpWait() {
try {
Thread.sleep(3 * 1000);
} catch (InterruptedException e) {
Logger.e(e, "");
}
IdlingPolicies.setMasterPolicyTimeout(10, TimeUnit.SECONDS);
IdlingPolicies.setIdlingResourceTimeout(5, TimeUnit.SECONDS);
}
}
Run Code Online (Sandbox Code Playgroud)
MyActivityTestRule:
public class MyActivityTestRule<D extends Activity> extends ActivityTestRule {
private String mCurCountryCode;
private String mCurLangCode;
protected MyActivityTestRule(Class activityClass) {
super(activityClass);
}
public MyActivityTestRule(Class activityClass, boolean initialTouchMode) {
super(activityClass, initialTouchMode);
}
public MyActivityTestRule(Class activityClass, boolean initialTouchMode, boolean launchActivity) {
super(activityClass, initialTouchMode, launchActivity);
}
@Override
protected void beforeActivityLaunched() {
super.beforeActivityLaunched();
PrefUtils.setup(InstrumentationRegistry.getTargetContext());
mCurCountryCode = PrefUtils.getCurrentCountryCode();
mCurLangCode = PrefUtils.getCurrentLangCode();
PrefUtils.clear(InstrumentationRegistry.getTargetContext());
PrefUtils.setCurrentCountryCode("SG");
PrefUtils.setCurrentLangCode("en");
}
String getmCurCountryCode() {
return mCurCountryCode;
}
String getmCurLangCode() {
return mCurLangCode;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
388 次 |
| 最近记录: |