Android Studio Test失败junit.framework.AssertionFailedError

时间:2014-03-30 20:33:58

标签: android testing gradle

我使用最新的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>

1 个答案:

答案 0 :(得分:2)

ActivityUnitTestCase.startActivity(Intent, Bundle, Object)的文档明确说明:

请勿使用setUp()方法调用。您必须从每个测试方法中调用此方法。

参考:developer.android.com