我可以使用Robolectric对静态库罐进行单元测试吗?

时间:2013-04-25 21:18:42

标签: android unit-testing robolectric

我正在尝试在jar库中测试一个方法,并希望使用Robolectric进行单元测试,而不是在Android模拟器中运行测试。我遇到了一个问题,Robolectric需要一个不存在的androidmanifest.xml文件,因为我正在构建一个库......

有没有办法在没有app的情况下运行Robolectric测试?

以下是我的测试用例和测试代码:

public class ObjectUnderTest {
    methodUnderTest(View v) {
        ...
    }
}

@RunWith(RobolectricTestRunner.class)
public class Tests {
    @Test
    public void methodUnderTest_Test() {
        ...
    }
}

当我运行测试套件时,我从Robolectric获取了一个FileNotFoundException,寻找androidmanifest.xml。我尝试使用JUnit4测试运行器,但后来我得到了“Stub!”我为methodUnderTest()创建一个View的异常。

除了为单元测试创​​建存根应用程序之外,还有办法做到这一点吗?谢谢!

1 个答案:

答案 0 :(得分:1)

这取决于您使用的Robolectric。

如果您使用2.0,则可以尝试使用@Config(manifest = Config.NONE)注释您的测试类。

如果您使用1.x我认为这是可行的,但需要更多努力:

  1. 您应该创建类似于Android项目的文件夹创建结构,并在
  2. 中创建虚拟AndroidManiifest.xml
  3. 你应该扩展RobolectricTestRunner并将构造函数路径传递给这个虚假的Android项目