我使用最新的android studio版本。我想使用它的测试可能性。 当我测试我的库项目时,我收到一个错误。 这是错误发生的地方:
startActivity (intent, null, null);
之前创建的intent已经为null。删除测试清单文件不会更改任何内容。我猜清单是不被认可的。 Lint还在清单中将此行标记为红色(以及我在其中输入的所有内容): 机器人:targetPackage =" common.project"
junit.framework.AssertionFailedError
at android.test.ActivityUnitTestCase.startActivity(ActivityUnitTestCase.java:147)
at common.project.test.MainActivityTest.setUp(MainActivityTest.java:27)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
我的项目结构如下所示 项目
\-library project
\-src
\-AndroidManifest.xml
\-androidTest
\-java
\-common.project.test
\-MainActivityTest.java
这是一个图书馆项目。我想现在就开始测试。 这是MainActivityTest.java
public class MainActivityTest extends android.test.ActivityUnitTestCase<MainActivity> {
private MainActivity mActivity;
private MenuItem forwardButton;
public MainActivityTest() {
super(MainActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
Intent intent = new Intent(getInstrumentation().getTargetContext(),
MainActivity.class);
startActivity (intent, null, null);
mActivity = getActivity();
Test Manifest看起来像这样:
<application>
<uses-library android:name="android.test.runner" />
</application>
<instrumentation
android:targetPackage="common.project"
android:name="android.test.InstrumentationTestRunner" />
</manifest>
答案 0 :(得分:2)
ActivityUnitTestCase.startActivity(Intent, Bundle, Object)
的文档明确说明:
请勿使用setUp()方法调用。您必须从每个测试方法中调用此方法。