Cyr*_*rus 4 android download-manager okhttp android-9.0-pie
当我使用 mockhttpserver 测试 http 请求时出现上述错误,以下代码是我创建服务的方式。
fun <T> getService(clazz: Class<T>): T {
val client = OkHttpClient.Builder().addInterceptor(HeaderInterceptor()).addInterceptor(HttpLoggingInterceptor().apply { level = if (BuildConfig.DEBUG) HttpLoggingInterceptor.Level.BODY else HttpLoggingInterceptor.Level.NONE })
.build()
return Retrofit.Builder()
.baseUrl(mockWebServer.url(""))
.client(client)
.addConverterFactory(GsonConverterFactory.create(GSON))
.build()
.create(clazz)
}
Run Code Online (Sandbox Code Playgroud)
这是我的测试代码。
@UninstallModules(HomePageDataModule::class)
@HiltAndroidTest
class TestHomePageViewModel {
private lateinit var viewModel: HomePageViewModel
@get:Rule
var hiltRule = HiltAndroidRule(this)
@Inject
lateinit var cpd: CompositionDao
@Inject
lateinit var csd: CompositionsDao
@Inject
lateinit var hpds: HomePageDataSource
@Inject
lateinit var ss :HomePageService
@Before
fun init() {
hiltRule.inject()
viewModel = HomePageViewModel(HomeCompositionsRepository(cpd, csd, hpds, Util.GSON))
}
@Test
fun testObserveHomeData() {
val data = Util.getFileString("mainpage.json")
val rr = GSON.fromJson(data,Array<HomePreviewView>::class.java)
println(rr)
enqueueResponse("mainpage.json")
runBlocking {
val result = ss.getHomeData()
Assert.assertNotEquals(rr.size,result.body()!!.size)
}
}
Run Code Online (Sandbox Code Playgroud)
除了运行我的单元测试代码之外,我的应用程序一切正常。 有一个类似的问题,但我的问题与那个问题相比有点不同。我尝试过类似问题的很多方法,但都不起作用。
PS:如果测试代码在 Junit4Test 上运行而不是在 AndroidJunit4Test 上运行,则它可以正常工作。但现在我需要执行集成测试。所以这部分代码需要在AndroidJunit4Test上执行
Qui*_*ner 11
解决方案 1)
将以下属性添加到<applicationAndroidManifest.xml 中的标记:
android:usesCleartextTraffic="true"
Run Code Online (Sandbox Code Playgroud)
解决方案2)
添加android:networkSecurityConfig="@xml/network_security_config"到<application标签中app/src/main/AndroidManifest.xml:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_security_config"
android:theme="@style/AppTheme">
Run Code Online (Sandbox Code Playgroud)
具有相应的network_security_config.xmlin app/src/main/res/xml/:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4628 次 |
| 最近记录: |