• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

nested json에 대한 처리 및 테스트는 어떻게 해야 할까요? ㅠ

22.04.15 14:11 작성 조회수 377

0

강의에서 가르쳐주신 방법데로 개인플젝에 테스트 코드를 만들어서 사용하고 있는데요.. 

설계한 모델은

community, 그리고 이 안에 communitySetting을 담당하는 모델 2개를 만들어두었고 아래와 같이 freezed를 이용해서 구현을 해두었습니다.

 

Community model

(community setting 모델을 포함하는..)

@freezed
class Community with _$Community {
@JsonSerializable(fieldRename: FieldRename.snake, explicitToJson: true)
const factory Community({
int? id,
required String image,
required String name,
required String introduction,
required int publicStatus,
required String type,
required String detailType,
int? rank,
String? zipcode,
String? address,
required int approveRequiredStatus,
required String signupIntroduction,
required CommunitySetting settingJson
}) = _Community;

factory Community.fromJson(Map<String, dynamic> json) =>
_$CommunityFromJson(json);
}

 

 

CommunitySetting 모델

@freezed
class CommunitySetting with _$CommunitySetting {
@JsonSerializable(fieldRename: FieldRename.snake, explicitToJson: true)
const factory CommunitySetting({
required String configName,
required String fillPhone,
required String fillGender,
required String fillBirthDate,
required String fillActivityArea,
required String fillIntroduction,
required String fillMotivationToJoin,
}) = _CommunitySetting;

factory CommunitySetting.fromJson(Map<String, dynamic> json) =>
_$CommunitySettingFromJson(json);
}

 

그리고 test 코드에서는 fakeJson을 아래와 같이 nested json 있는 형태로 구성하고 테스트를 돌렸는데요

Nested Json은 setting_json 필드 입니다. 

String fakeJsonOne = """
{
"id": 1,
"image": "https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.facebook.com%2Fgroups%2F623067261102382%2F&psig=AOvVaw3ok-tVpjly7PZseHURwtWJ&ust=1647397226257000&source=images&cd=vfe&ved=0CAsQjRxqFwoTCIjvr4qHx_YCFQAAAAAdAAAAABAD",
"name": "우리동네 커뮤니티",
"introduction": "우리동네 오신걸 환영합니다.",
"public_status": 1,
"type": "OFFICIAL",
"detail_type": "GNRL",
"ranking": null,
"zipcode": "112233",
"address": "경기 양평군",
"approve_required_status": 1,
"signup_introduction": "가입인사 꼭 남겨주세요.",
"setting_json": {
"fillPhone": "OPTIONAL",
"configName": "MANDATORY",
"fillGender": "MANDATORY",
"fillBirthDate": "NONE",
"fillActivityArea": "OPTIONAL",
"fillIntroduction": "OPTIONAL",
"fillMotivationToJoin": "OPTIONAL"
}
}
""";

type 'Null' is not a subtype of type 'String' in type cast

 

이런 에러가 계속 나면서 테스트가 계속 실패가 되고 있습니다. 

nestedJson으로 구성한 setting_json을 제대로 파싱을 못하는거 같은데 어느 부분을 확인을 해보면 될까요? 

답변 1

답변을 작성해보세요.

0

fieldRename 옵션을 snake 로 주셨는데 fake json 의 setting_json 항목은 모두 camel case 라서 그런 것이 아닐까요?