2013-02-07 50 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

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