在Junit测试中调用findViewById()

时间:2013-02-07 20:15:03

标签: android junit4

我是一个新的单元测试,我有一个简单的测试方法,不起作用。这就是我所拥有的:

@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。然而,应用程序的自我工作正常,所以我知道布局是存在的,这个测试应该通过。

任何建议?????

2 个答案:

答案 0 :(得分:2)

当您在Android上运行正常的JUnit测试时,应用程序的其余部分未完全构建。

然而,Android提供了一些辅助类,它们构建了足够的应用程序,以便您可以测试它。看看http://developer.android.com/tools/testing/activity_testing.html

我过去大多使用ActivityInstrumentationTestCase2

答案 1 :(得分:1)

我发现问题是我传递的布局不是findViewById()的ID。