2013-04-25 76 views
1

我想在jar库中测试一个方法,并且希望能够使用Robolectric来做我的单元测试,而不是在Android模拟器中运行测试。我遇到了一个问题,虽然Robolectric需要一个不存在的androidmanifest.xml文件,因为我正在构建一个库...我可以使用Robolectric来测试静态库罐吗?

有什么方法可以在没有应用程序的情况下运行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时发生异常。

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

+0

你为什么要测试Android项目以外的库?也是这个jar库或apklib?你对这个图书馆有控制吗? – 2013-05-08 05:03:50

+0

这是一个jar库。我希望我只需要一个测试项目来简化我的代码库,而不是一个测试项目和一个线束应用程序。 – Greg 2013-05-10 19:03:51

回答

1

这取决于您使用的Robolectric。

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

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

  1. 你应该文件夹中创建类似于Android项目结构,创建虚拟AndroidManiifest.xml内
  2. 您应该扩展RobolectricTestRunner和通过构造函数路径到这个假Android项目
相关问题