質問編集履歴

2

内容を整理

2021/07/08 06:17

投稿

faaaypw
faaaypw

スコア1

test CHANGED
File without changes
test CHANGED
@@ -12,14 +12,10 @@
12
12
 
13
13
 
14
14
 
15
- テスト観点としては以下を想定していますが、まず一つ目のテスト作成でビルドエラ-しています。
15
+ テスト観点としては以下を想定していますが、そもそもビルドエラ-してしまいます。
16
16
 
17
17
  ・APIから天気情報が正常に返却された場合に呼び出しもとの情報が正常に更新される確認
18
18
 
19
- ・APIから例外がスロ-された場合に例外処理が正常に行われる確認
20
-
21
- ・JSON文字列のエンコード、デコードが正常に行われている確認
22
-
23
19
 
24
20
 
25
21
  ### 発生している問題・エラーメッセージ
@@ -120,8 +116,6 @@
120
116
 
121
117
 
122
118
 
123
- // java.lang.RuntimeException: Method getMainLooper in android.os.Looper not mocked. 対策で必要
124
-
125
119
  @get:Rule
126
120
 
127
121
  val instantTaskExecutorRule = InstantTaskExecutorRule()
@@ -192,24 +186,16 @@
192
186
 
193
187
 
194
188
 
195
- // JSON文字列を介して天気情報を取得する関数
196
-
197
189
  fun getJsonWeatherInfo() {
198
190
 
199
191
  initializeData()
200
192
 
201
- // JSON文字列を生成
202
-
203
193
  val jsonAreaInfo = AreaInfo("tokyo", "2021-06-22")
204
194
 
205
- // データクラスをJSON文字列化
206
-
207
195
  val stringAreaInfo = Json.encodeToString(jsonAreaInfo)
208
196
 
209
197
  try {
210
198
 
211
- // returnされたJSON文字列を格納
212
-
213
199
  resultJsonWeather = weatherApi.fetchJsonWeather(stringAreaInfo)
214
200
 
215
201
  } catch (e: UnknownException) {
@@ -220,8 +206,6 @@
220
206
 
221
207
 
222
208
 
223
- // 取得したJSON文字列からデータクラスを生成
224
-
225
209
  val resultStringWeather = resultJsonWeather?.let { Json.decodeFromString<GetAreaInfo>(it) }
226
210
 
227
211
  currentWeather = resultStringWeather?.weather
@@ -232,8 +216,6 @@
232
216
 
233
217
 
234
218
 
235
- // 表示する画像リソースを格納する
236
-
237
219
  val weatherString = currentWeather ?: return
238
220
 
239
221
  try {
@@ -254,8 +236,6 @@
254
236
 
255
237
  ```kotlin
256
238
 
257
- // fetchJsonWeatherの引数となるJSON文字列を生成するクラス
258
-
259
239
  @Serializable
260
240
 
261
241
  data class AreaInfo(
@@ -268,8 +248,6 @@
268
248
 
269
249
 
270
250
 
271
- // returnされたJASON文字列をパースするクラス
272
-
273
251
  @Serializable
274
252
 
275
253
  data class GetAreaInfo(
@@ -290,63 +268,7 @@
290
268
 
291
269
  ```
292
270
 
293
- ```kotlin
271
+
294
-
295
- fun fetchJsonWeather(json: String): String {
296
-
297
- // moshiは、JSON文字列をKotlin オブジェクトに変換するAndroid JSON パーサー
298
-
299
- // moshiオブジェクトを生成
300
-
301
- val moshi = Moshi.Builder()
302
-
303
- .add(Date::class.java, DateAdapter())
304
-
305
- .build()
306
-
307
-
308
-
309
- // 変換対象のクラスを渡しアダプタを生成
310
-
311
- val requestAdapter = moshi.adapter(Request::class.java)
312
-
313
- // JSON文字列からオブジェクトに変換
314
-
315
- val request = requestAdapter.fromJson(json) ?: throw IllegalArgumentException()
316
-
317
-
318
-
319
- // 変換対象のクラスを渡しアダプタを生成
320
-
321
- val responseAdapter = moshi.adapter(Response::class.java)
322
-
323
-
324
-
325
- val maxTemp = (10..40).random()
326
-
327
- val minTemp = (-40..maxTemp).random()
328
-
329
- // JSONに変換するオブジェクトを生成
330
-
331
- val response = Response(
332
-
333
- weather = fetchThrowsWeather(),
334
-
335
- maxTemp = maxTemp,
336
-
337
- minTemp = minTemp,
338
-
339
- date = request.date
340
-
341
- )
342
-
343
- // オブジェクトをJSON文字列に変換
344
-
345
- return responseAdapter.toJson(response)
346
-
347
- }
348
-
349
- ```
350
272
 
351
273
  ### 試したこと
352
274
 

1

APIに関するコードを追加

2021/07/08 06:16

投稿

faaaypw
faaaypw

スコア1

test CHANGED
File without changes
test CHANGED
@@ -290,7 +290,63 @@
290
290
 
291
291
  ```
292
292
 
293
-
293
+ ```kotlin
294
+
295
+ fun fetchJsonWeather(json: String): String {
296
+
297
+ // moshiは、JSON文字列をKotlin オブジェクトに変換するAndroid JSON パーサー
298
+
299
+ // moshiオブジェクトを生成
300
+
301
+ val moshi = Moshi.Builder()
302
+
303
+ .add(Date::class.java, DateAdapter())
304
+
305
+ .build()
306
+
307
+
308
+
309
+ // 変換対象のクラスを渡しアダプタを生成
310
+
311
+ val requestAdapter = moshi.adapter(Request::class.java)
312
+
313
+ // JSON文字列からオブジェクトに変換
314
+
315
+ val request = requestAdapter.fromJson(json) ?: throw IllegalArgumentException()
316
+
317
+
318
+
319
+ // 変換対象のクラスを渡しアダプタを生成
320
+
321
+ val responseAdapter = moshi.adapter(Response::class.java)
322
+
323
+
324
+
325
+ val maxTemp = (10..40).random()
326
+
327
+ val minTemp = (-40..maxTemp).random()
328
+
329
+ // JSONに変換するオブジェクトを生成
330
+
331
+ val response = Response(
332
+
333
+ weather = fetchThrowsWeather(),
334
+
335
+ maxTemp = maxTemp,
336
+
337
+ minTemp = minTemp,
338
+
339
+ date = request.date
340
+
341
+ )
342
+
343
+ // オブジェクトをJSON文字列に変換
344
+
345
+ return responseAdapter.toJson(response)
346
+
347
+ }
348
+
349
+ ```
294
350
 
295
351
  ### 試したこと
296
352