如何在android测试中收听ActivityTestRule 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测试类中,我可以这样做:
@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测试规则的实例化吗?
发布于 2016-05-13 09:55:17
您可以重写beforeActivityLaunched,而无需创建新的类。
我在测试中使用了以下内容:
@Rule
public ActivityTestRule<MainActivity> mainActivityActivityTestRule = new ActivityTestRule<MainActivity>(MainActivity.class) {
@Override
protected void beforeActivityLaunched() {
super.beforeActivityLaunched();
}
};发布于 2016-05-13 14:25:40
您可以配置测试规则,以便它不会自动启动您的活动。
@Rule
public ActivityTestRule<MainActivity> activityTestRule = new ActivityTestRule<MainActivity>(MainActivity.class, false, false);在安装方法中,您可以准备所需的所有内容,然后启动活动。
activityTestRule.launchActivity(null);另请参阅
https://stackoverflow.com/questions/37101241
复制相似问题