【发布时间】:2021-05-20 14:50:31
【问题描述】:
我正在编写一个单元测试来测试我的 API 调用,使用 Retrofit2。 我有一个可以在本地启动的服务器的模拟(使用 localhost:8080)
我总是收到 403 错误 - 禁止使用,但它与 Postman 配合使用效果很好
@Config(sdk = [28])
@RunWith(RobolectricTestRunner::class)
class MockServerTest {
private lateinit var result: Response<CacheResult>
private lateinit var api: FakeAPI
@Before
fun setUp() {
api = CompanySingleton.retrofit.create(FakeAPI::class.java)
}
@Test
fun getResult() {
runBlocking {
result = api.cache()
assertThat(result.isSuccessful, equalTo(true))
}
}
}
object CompanySingleton {
private val okHttpClient: OkHttpClient = OkHttpClient.Builder()
.addInterceptor(Interceptor { chain ->
val original = chain.request()
val requestBuilder = original
.newBuilder()
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "OAuth test")
.addHeader("x-device-id", "test")
val request = requestBuilder.build()
chain.proceed(request)
}
).build()
val retrofit: Retrofit = Retrofit.Builder()
.baseUrl("http://localhost:8080/")
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create())
.build()
}
【问题讨论】:
标签: android unit-testing retrofit2 okhttp