自分の活動を確認するために機器テストを開始します。アクティビティのボタンを押すと、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)
順調です。リクエストのボディ コンテンツは "type":1" です。結果として、テストはパスです。いいですね。
しかし、私のアクティビティ(作成時)は、バックグラウンドで定期的に(5秒ごとに)次のhttpリクエストを開始します:
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
POSTそして
、結果として、ステータス 200 は私のテストの HTTP リクエストではありません。http://127.0.0.1:8081/event?table_token=11&device_id=111111
その結果、私のテストは失敗します。テストで正確にhttp 応答コード = 200を返すことは可能ですか?