单元测试中的LowLevelHttpTransport问题

时间:2010-10-28 10:32:34

标签: android junit google-api

我目前正在尝试在使用HTTPtransport的类上运行一些单元测试,它是Android应用程序的一部分。 google-api的文档说这应该没问题,因为Apache传输已内置到Android中。

但是,在运行我的测试时,我收到以下错误:

  

java.lang.IllegalStateException:   无法加载NetHttpTrasnport   com.google.api.client.http.HttpTransport.useLowLevelHttpTransport(HttpTransport.java:98)   在   com.google.api.client.http.HttpTransport。(HttpTransport.java:156)   在   com.google.api.client.googleapis.GoogleTransport.create(GoogleTransport.java:58)   在   uk.co.redfruit.android.whogotwhat.googlebase.GoogleBaseSearch.search(GoogleBaseSearch.java:41)   在   uk.co.redfruit.android.whogotwhat.test.GoogleBaseSearchTest.testSearchForBarcode(GoogleBaseSearchTest.java:22)   在   java.lang.reflect.Method.invokeNative(母语   方法)at   android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)   在   android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)   在   android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:430)   在   android.app.Instrumentation $ InstrumentationThread.run(Instrumentation.java:1447)

这是一个错误吗?或者我错过了什么?

2 个答案:

答案 0 :(得分:1)

好的 - 我发现了问题。由于您尝试确定您所在的环境(使用class.forName()和捕获异常)的方式,所有类路径错误都会导致此失败 - 这可能会产生误导。

它正确地确定了我的环境(所以这与单元测试无关),但是后来无法加载其他类。

通过添加apache客户端,重新打包和转义jar,我能够解决问题。我建议可以改进一下。

答案 1 :(得分:0)

您是否可以使用该库的1.1版?我刚刚修复了bug以使Apache传输成为版本1.2中的默认值。因此,如果您使用的是1.1版,请尝试切换到1.2,如果不能解决错误,请告诉我。

免责声明:我是google-api-java-client图书馆的所有者。