Я пытаюсь создать тест для получения ошибки при преобразовании типа
modelTest = VersionModel(
forceUpdate: true,//bool
buildNumber: 1222,//int
versionNumber: "2",//String
);
Мой json имеет неправильный тип объекта
final jsonError = {
"force_update": "false",
"build_number": 31003.,
"version_number": "3.1.0"
};
Мой тест
test("Should be return instance of VersionModel from json", () {
final json = modelTest!.toJson();
expect(VersionModel.fromJson(json),
Exception());
});
сообщение: тип «String» не является подтипом типа «bool?» в литой форме
Что я пробовал
test("Should be return an error of a instance VersionModel to json",
() {
try {
VersionModel.fromJson(jsonError);
} catch (e) {
expect(e, isInstanceOf<TypeError>());
}





Вы можете проверить ошибку следующим образом. Ошибка в сериализации будет обнаружена и выдаст исключение следующим образом. Затем он проверит тип, который был выбран при сериализации, и сопоставит его с исключенным значением.
test("Should be return instance of VersionModel from json", () {
expect(() {
try {
VersionModel.fromJson(jsonEncode(jsonError));
} catch (e) {
throw Exception();
}
}, throwsA(isA<Exception>()));
});
В соответствии с этим он выдает исключение для всех типов ошибок, исходящих из json.