如何在 android 测试中监听 Android ActivityTestRule 的 beforeActivityLaunched 方法
How to listen Android ActivityTestRule's beforeActivityLaunched method in an android test
如何在 android 测试中收听 ActivityTestRule's beforeActivityLaunched() 方法。
我的解决方法是创建自定义 ActivityTestRule 并在构造函数上提供回调。这是一种不好的做法吗?同样的方法可以监听 ActivityTestRule 构造方法。
这是我的代码:
public class CustomActivityTestRule<A extends Activity> extends ActivityTestRule<A> {
public interface onBeforeListener{
void onBefore(String message);
}
private onBeforeListener listener;
public CustomActivityTestRule(Class<A> activityClass, onBeforeListener listener) {
super(activityClass);
}
@Override
protected void beforeActivityLaunched() {
super.beforeActivityLaunched();
listener.onBefore("before activity launch");
}
}
在 android 测试 class 中,我可以这样做:
@Rule public CustomActivityTestRule<MainActivity> mainActivityActivityTestRule = new
CustomActivityTestRule<MainActivity>(MainActivity.class, new CustomActivityTestRule.onBeforeListener() {
@Override
public void onBefore(String message) {
//do something before activity starts
}
});
它能够在 junit 规则实例化上执行某些操作的方式相同。有没有其他方法可以监听 junit 测试规则实例化?
您可以覆盖 beforeActivityLaunched
而无需创建新的 class。
我在测试中使用了以下内容:
@Rule
public ActivityTestRule<MainActivity> mainActivityActivityTestRule = new ActivityTestRule<MainActivity>(MainActivity.class) {
@Override
protected void beforeActivityLaunched() {
super.beforeActivityLaunched();
}
};
您可以配置测试规则,使其不会自动启动您的 activity。
@Rule
public ActivityTestRule<MainActivity> activityTestRule = new ActivityTestRule<MainActivity>(MainActivity.class, false, false);
在您的设置方法中,您可以准备好所有需要的东西,然后启动 activity。
activityTestRule.launchActivity(null);
另见
如何在 android 测试中收听 ActivityTestRule's beforeActivityLaunched() 方法。
我的解决方法是创建自定义 ActivityTestRule 并在构造函数上提供回调。这是一种不好的做法吗?同样的方法可以监听 ActivityTestRule 构造方法。
这是我的代码:
public class CustomActivityTestRule<A extends Activity> extends ActivityTestRule<A> {
public interface onBeforeListener{
void onBefore(String message);
}
private onBeforeListener listener;
public CustomActivityTestRule(Class<A> activityClass, onBeforeListener listener) {
super(activityClass);
}
@Override
protected void beforeActivityLaunched() {
super.beforeActivityLaunched();
listener.onBefore("before activity launch");
}
}
在 android 测试 class 中,我可以这样做:
@Rule public CustomActivityTestRule<MainActivity> mainActivityActivityTestRule = new
CustomActivityTestRule<MainActivity>(MainActivity.class, new CustomActivityTestRule.onBeforeListener() {
@Override
public void onBefore(String message) {
//do something before activity starts
}
});
它能够在 junit 规则实例化上执行某些操作的方式相同。有没有其他方法可以监听 junit 测试规则实例化?
您可以覆盖 beforeActivityLaunched
而无需创建新的 class。
我在测试中使用了以下内容:
@Rule
public ActivityTestRule<MainActivity> mainActivityActivityTestRule = new ActivityTestRule<MainActivity>(MainActivity.class) {
@Override
protected void beforeActivityLaunched() {
super.beforeActivityLaunched();
}
};
您可以配置测试规则,使其不会自动启动您的 activity。
@Rule
public ActivityTestRule<MainActivity> activityTestRule = new ActivityTestRule<MainActivity>(MainActivity.class, false, false);
在您的设置方法中,您可以准备好所有需要的东西,然后启动 activity。
activityTestRule.launchActivity(null);
另见