android - MockWebServer 不等待 N 秒返回存根响应
问题描述
Android Espresso 的测试:
第一个版本
import okhttp3.mockwebserver.MockResponse
import okhttp3.mockwebserver.MockWebServer
private lateinit var mockServer: MockWebServer
@Rule
@JvmField
var tradersIntentTestRule = IntentsTestRule(TradersActivity::class.java, false, false)
@Before
fun setup() {
mockServer = MockWebServer()
mockServer.start(8081)
Debug.d(TAG, "setup_START")
}
@Test
fun testMockServer() {
Debug.d(TAG, "testMockServer_start")
mockServer.enqueue(MockResponse()
.setResponseCode(200)
.setBodyDelay(10000, TimeUnit.MILLISECONDS)
.setBody(FileUtil.getStringFromFile(context, randomTraderStubName.stubName)));
Debug.d(TAG, "testMockServer_finish")
}
@After
@Throws
fun tearDown() {
mockServer.shutdown()
}
这里结果logcat:
05-31 18:10:52.327 D/com.myproject.activity.TradersActivityTest(10312): testMockServer_start
05-31 18:10:52.371 D/com.myproject.activity.TradersActivityTest(10312): testMockServer_finish
正如你所看到的文本“ testMockServer_finish
”立即显示。不要等10秒。
第二个版本:
@Test
fun testMockServer() {
Debug.d(TAG, "testMockServer_start")
tradersIntentTestRule.finishActivity()
mockServer.enqueue(MockResponse()
.setResponseCode(200)
.setBodyDelay(10000, TimeUnit.MILLISECONDS)
.setBody(FileUtil.getStringFromFile(context, randomTraderStubName.stubName)));
tradersIntentTestRule.launchActivity(Intent())
Debug.d(TAG, "testMockServer_finish")
}
结果日志猫:
05-31 18:14:54.103 D/com.myproject.android.activity.TradersActivityTest(11689): testMockServer_start
05-31 18:15:04.322 D/com.myproject.android.activity.TradersActivityTest(11689): testMockServer_finish
现在你可以看到文本“ testMockServer_finish
”在 10 秒后显示
为什么在第一个版本不等待 10 秒?
解决方案
推荐阅读
- dart - 如何将列表视图居中?
- python - 如何从多个 .txt 文件中创建唯一的数据框?
- python - 在 pysnopper 中调试 python 的最佳方法
- angular - 如何使用 Leaflet 在点击时设置新的纬度和经度?
- azure - Azure 虚拟机 SSL 证书
- r - eval 中的错误(predvars,data,env):找不到对象“客户计数”
- hibernate - 创建名为“entityManagerFactory”的bean时出错-Spring boot不接受我的entityManager
- ruby-on-rails - 预览视频附件 Rails Admin, Active Storage
- python - 如何从存储桶中下载 csv 文件然后在函数中使用?
- python - 根据列元素中的单词(部分匹配或完整)将多个标签匹配到列