关于 Robolectric.When 我在 activity 中没有初始化对象,我该如何测试 activity?
About Robolectric.When I have object not init in an activity, how can I test that activity?
当我这样写的时候 MyActivity activity = Robolectric.setupActivity(MyActivity.class);
它总是这样抛出:
java.lang.NullPointerException
at com.printer.ui.activity.MyActivity.initView(MyActivity.java:309)
at com.ui.activity.MyActivity.onCreate(MyActivity.java:114)
那一行是这样的:
fileTextView.setText(AppUtil.getFileNameNoEx(AppConfig.printFile.getName()));
而AppConfig.printFile为空,我如何测试activity?
快速修复您的测试:
AppConfig.printFile = new File();
MyActivity activity = Robolectric.setupActivity(MyActivity.class);
正确的解决方法是传递 activity 意图中的路径:
public class MyActivity {
public static final String FILE_PATH = "FILE_PATH";
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
String path = getIntent().getStringExtra(FILE_PATH);
...
}
...
}
Intent myActivityIntent = new Intent(this, MyActivity.class);
intent.putExtra(MyActivity.FILE_PATH, "path");
startActivity(intent);
当我这样写的时候 MyActivity activity = Robolectric.setupActivity(MyActivity.class);
它总是这样抛出:
java.lang.NullPointerException
at com.printer.ui.activity.MyActivity.initView(MyActivity.java:309)
at com.ui.activity.MyActivity.onCreate(MyActivity.java:114)
那一行是这样的:
fileTextView.setText(AppUtil.getFileNameNoEx(AppConfig.printFile.getName()));
而AppConfig.printFile为空,我如何测试activity?
快速修复您的测试:
AppConfig.printFile = new File();
MyActivity activity = Robolectric.setupActivity(MyActivity.class);
正确的解决方法是传递 activity 意图中的路径:
public class MyActivity {
public static final String FILE_PATH = "FILE_PATH";
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
String path = getIntent().getStringExtra(FILE_PATH);
...
}
...
}
Intent myActivityIntent = new Intent(this, MyActivity.class);
intent.putExtra(MyActivity.FILE_PATH, "path");
startActivity(intent);