2013-02-07 51 views
1

我是一個新的單元測試,我有一個簡單的測試方法,它不工作。以下是我有:在Junit測試中調用findViewById()

@Test 
public void testLayoutAvailable() { 
    View v = mMainActivity.findViewById(R.layout.main_activity); 
    assertNotNull(v); 
} 

我的問題是v總是null。我瀏覽了代碼,並且mMainActivity不是null,其餘的測試方法都正常工作。所以我確信有一些簡單的事情我還沒有意識到。我檢查了我的進口,我也試過com.packagename.R.layout.main_activity,那也返回null。然而,它的自我工作的應用程序很好,所以我知道佈局在那裏,這個測試應該通過。

任何建議?????

回答

1

我發現問題是我傳遞的佈局不是ID到findViewById()

1

當您在Android上運行正常的JUnit測試時,應用程序的其餘部分未完全構建。

但是,Android提供了一些幫助程序類,它們可以構建足夠的應用程序,以便能夠對其進行測試。看看http://developer.android.com/tools/testing/activity_testing.html

我在過去主要使用ActivityInstrumentationTestCase2

+0

是的,這也是我正在使用的測試用例。但是我發現我的問題。我打電話給findViewById()並傳入佈局而不是視圖。我不相信我錯過了那個哈哈。哦,你活着,學習我猜。感謝您的幫助。 –

+0

真棒,很高興你有它的工作。 –