是否有可能完全为我的测试返回http响应代码= 200?

问题描述 投票:0回答:1

我开始进行仪器测试以检查我的活动。当按“活动”上的按钮时,则调用http请求。所以我测试点击

@Test
   fun click_checkRequest() {
       mockServer.enqueue(
           MockResponse()
                    .setResponseCode(200)
       )

       myContainer.click()
       val request = mockServer.takeRequest();
       Assert.assertEquals("POST", request.method)
       assertThat(request.path, CoreMatchers.containsString("/event?"))
       assertThat(
           request.body.readUtf8(), CoreMatchers.containsString( """type":1""")
       )
   }

这里日志:

11-29 11:06:26.952 D/OkHttp  (15697): --> POST http://127.0.0.1:8081/event?table_token=11&device_id=111111 http/1.1
11-29 11:06:26.952 D/OkHttp  (15697): Content-Type: application/json; charset=UTF-8
11-29 11:06:26.952 D/OkHttp  (15697): Content-Length: 10
11-29 11:06:26.953 D/OkHttp  (15697): {"type":1}
11-29 11:06:26.953 D/OkHttp  (15697): --> END POST (10-byte body)
11-29 11:06:26.968 I/MockWebServer(15697): MockWebServer[8081] received request: POST /event?table_token=my_token&user=my_user&device_id=my_device HTTP/1.1 and responded: HTTP/1.1 200 OK
11-29 11:06:26.969 D/OkHttp  (15697): <-- 200 OK http://127.0.0.1:8081/event?table_token=my_token&user=my_user&device_id=my_device (16ms)
11-29 11:06:26.969 D/OkHttp  (15697): Content-Length: 0
11-29 11:06:26.969 D/OkHttp  (15697): <-- END HTTP (0-byte body)

很好。请求的正文内容为“类型”:1”。因此,测试通过了。很好。

但是我的活动(创建时))在下一个http请求中定期(每5秒一次)在后台启动:

11-29 11:59:35.843 D/OkHttp  ( 1116): --> GET http://127.0.0.1:8081/event?orgn=17 http/1.1
11-29 11:59:35.843 D/OkHttp  ( 1116): --> END GET
11-29 11:59:35.862 I/MockWebServer( 1116): MockWebServer[8081] received request: GET /event?orgn=17 HTTP/1.1 and responded: HTTP/1.1 200 OK
11-29 11:59:35.863 D/OkHttp  ( 1116): <-- 200 OK http://127.0.0.1:8081/event?orgn=17 (20ms)
11-29 11:59:35.863 D/OkHttp  ( 1116): Content-Length: 0
11-29 11:59:35.863 D/OkHttp  ( 1116): <-- END HTTP (0-byte body)

11-29 11:59:35.940 D/OkHttp  ( 1116): --> POST http://127.0.0.1:8081/event?table_token=11&device_id=111111 http/1.1
11-29 11:59:35.940 D/OkHttp  ( 1116): Content-Type: application/json; charset=UTF-8
11-29 11:59:35.940 D/OkHttp  ( 1116): Content-Length: 10
11-29 11:59:35.940 D/OkHttp  ( 1116): {"type":1}
11-29 11:59:35.940 D/OkHttp  ( 1116): --> END POST (10-byte body)

您可以看到GET http://127.0.0.1:8081/event?orgn=17开始BEFORE我的测试运行POSThttp://127.0.0.1:8081/event?table_token=11&device_id=111111结果状态200返回NOT NOT我的测试的HTTP请求。

结果我的测试失败了。是否可以完全为我的测试返回http响应code = 200

我开始进行仪器测试以检查我的活动。当按“活动”上的按钮时,则调用http请求。所以我测试click @Test fun click_checkRequest(){模拟服务器.enqueue(...

android android-espresso okhttp mockwebserver
1个回答
0
投票

我找到了解决方案(感谢@Blundell)

© www.soinside.com 2019 - 2024. All rights reserved.