2015-05-19 39 views
1

我正在使用Android Studio来尝试和测试我的活动。这里是基本代码:Android - ActivityUnitTestCase - 测试总是通过

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); 
    } 
} 

我希望这个测试案例失败。我尝试的一切都通过了。这似乎是一个奇怪的问题,但我怎么能让我的测试用例失败呢?我究竟做错了什么?

回答

0

我设法让这个工作,有点。我发现这个在bug report

我们正在贬低ActivityUnitTestCase的过程。我们建议将业务逻辑移至单独的类,并使用gradle单元测试支持(可模拟android.jar)对其进行测试。

因此,我扩展了ActivityInstrumentationTestCase2,并将测试作为Instrumentation Test而不是Unit Test运行。这工作。这基本上是我现在有:

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

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

     Assert.assertEquals(message, expectedObject, actualObject); 
    } 
} 

我仍然不知道为什么,我看到我前面是行为,但至少我现在就可以测试。下面是我的测试版本配置的屏幕截图:

enter image description here

+0

这不是答案!仪器测试需要设备/仿真器,然后慢于单元测试。我们应该等待更好的选择:) –

+0

只要有更好的答案到达,我会将其标记为答案。无论是否较慢,这是我可以运行测试的唯一方式。 – Joe

相关问题