2015-05-19 40 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

相關問題