Android-ActivityUnitTestCase-测试始终通过

Android-ActivityUnitTestCase-测试始终通过,android,testing,android-studio,Android,Testing,Android Studio,我正在使用Android Studio尝试和测试我的活动。以下是基本代码: public class MyActivityTest extends ActivityUnitTestCase<MyActivity> { public MyActivityTest() { super(MyActivity.class); } @Override protected void setUp() throws Exception {

我正在使用Android Studio尝试和测试我的活动。以下是基本代码:

public class MyActivityTest extends ActivityUnitTestCase<MyActivity> {
    public MyActivityTest() {
        super(MyActivity.class);
    }

    @Override
    protected void setUp() throws Exception {
        super.setUp();
    }

    @SmallTest
    public void testSomething() {
        Assert.assertNotNull("something is null", null);
    }
}

我希望这个测试用例失败。但我尝试的一切都通过了。这似乎是一个奇怪的问题,但我如何才能使我的测试用例失败?我做错了什么?

在某种程度上,我设法让它工作起来。我在一张照片上发现了这个:

我们正在弃用ActivityUnitTestCase。我们建议将业务逻辑移动到单独的类中,并使用gradle单元测试支持mockable android.jar对其进行单元测试

因此,我扩展了ActivityInstrumentationTestCase2,并将该测试作为检测测试而不是单元测试运行。成功了。以下是我现在的基本情况:

public class MyActivityTest extends ActivityInstrumentationTestCase2<MyActivity> {
    public MyActivityTest() {
        super(MyActivity.class);
    }

    public void testSomething() throws Exception {
        //test goes here

        Assert.assertEquals(message, expectedObject, actualObject);
    }
}
我仍然不知道为什么我会看到我之前的行为,但至少我现在可以测试了。以下是我的测试构建配置的屏幕截图:


这不是答案!仪器测试需要设备/仿真器,并且比单元测试慢。我们应该等待一个更好的选择:一旦有更好的答案出现,我会把它标记为答案。不管它是否慢,这是我运行测试的唯一方法。