原来,问题是活动必须在实际的测试方法中得到。因此,例如,我的方法现在看起来像这样:
public void testGetActivityResourceString() {
Activity myActivity = this.getActivity();
String myString = myActivity.getResources().getString(R.string.hello);
Assert.assertNotNull(myString);
}
而我在安装程序中创建活动之前。这个赠品在文档中:
“对于每个测试方法调用,只有在第一次调用此方法时才会实际创建Activity。”
这是一个真正的麻烦要弄清楚。 HelloWorldTest的例子不能用于同样的原因。
下面是完整的条目:
公共牛逼getActivity() 自:API等级3 获取被测活动,必要时启动它。
对于每个测试方法调用,只有在第一次调用此方法时才会实际创建Activity。
如果您希望为您的活动提供自定义设置值,您可以在第一次调用getActivity()之前调用setActivityIntent(Intent)和/或setActivityInitialTouchMode(boolean)。活动开始后调用它们将不起作用。
注意:被测试的活动不能从UI线程内开始。如果您的测试方法使用UiThreadTest注释,那么您的Activity将在测试方法运行之前自动启动。您仍然调用此方法以获取待测活动。