gpt4 book ai didi

java - 如何在android中使用实际的HttpURLConnection进行单元测试?

转载 作者:行者123 更新时间:2023-12-01 10:06:39 25 4
gpt4 key购买 nike

我正在编写调用使用 HttpsURLConnection 对象的类库的单元测试/集成测试。很多时候,在通过单元测试调用连接对象上的方法(例如 addRequestPropertysetDoOutputsetRequestMethod)时,我会遇到类似 java.lang.Exception 的异常。 lang.IllegalStateException:已连接。该行为很可能是由于 gradle 中返回默认值所致。

testOptions {
unitTests.returnDefaultValues = true
}

参见http://tools.android.com/tech-docs/unit-testing-support了解更多详情

相同的代码在应用程序中运行良好。有没有办法在测试时实际使用真实的 HttpsURLConnection 对象?

最佳答案

您可以使用库来模拟请求和响应。我推荐这个:MockWebServer .

编辑:重新阅读您的问题后,您似乎想在单元测试中使用 HttpsURLConnection 。尝试在单元测试中使用 Android SDK 中的类的问题意味着您的测试变成了仪器测试,这意味着它必须在设备/模拟器上运行。

如果您想要集成仪器测试的示例,请查看 this很好的例子。

由于 HttpsURLConnection 也在 Java JDK 包中,如果您使用该类(导入 javax.net.ssl),您可能会更改为不使用任何 Android 类,这样您就可以在您的应用程序中将测试作为本地单元测试运行。 JVM(不是设备/模拟器)。

如果您想更好地了解仪器测试和本地单元测试之间的区别,请阅读 this博客文章。

关于java - 如何在android中使用实际的HttpURLConnection进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36402379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com