gpt4 book ai didi

flutter - 使用Flutter TDD返回基于json文件的有效BusinessCard模型

转载 作者:行者123 更新时间:2023-12-03 04:35:05 24 4
gpt4 key购买 nike

我正在尝试学习 flutter TDD,我想编写一个代码,该代码应从包含有关名片信息的json文件中返回有效的BusinessCardModel。
但是当我尝试运行此测试时:

    import 'dart:convert';

import 'package:cardatyapp/core/data/models/businessCard_model.dart';
import 'package:cardatyapp/core/domain/entities/businessCard.dart';
import 'package:flutter_test/flutter_test.dart';

import '../../../fixtures/fixtures_reader.dart';

void main() {
final tbusinessCardModel = BusinessCardModel(
id: '01',
jobTitle: 'fullstack developer',
jobDetails: 'creating fontend, backend & mobile applications',
organization: 'freelance',
);

test('sould be a subclass of the Card entity', () {
//assert
expect(tbusinessCardModel, isA<BusinessCard>());
});

test(
'should return a valid BusinessCardModel when json file contains BusinessCard',
() async {
//arrange
final Map<String, dynamic> jsonMap = json.decode(readFixture('card.json'));
//act
final result = BusinessCardModel.fromJson(jsonMap);
//assert

expect(result, tbusinessCardModel);
});
}
我有这个错误!
我不明白?
    ERROR: Expected: BusinessCardModel:<BusinessCardModel>
Actual: BusinessCardModel:<BusinessCardModel>
以下是代码片段:
card.json file:

{
"uuid": "recqPz5M7tQTYesc3",
"fav_by_user": [
"reclZ8MXHwYKSXgNz"
],
"created_by_user": [
"recQ0XTSbKoezQCmQ"
],
"job_title": "Account Executive",
"id_card": "1",
"organization": "Buzzshare",
"job_details": "In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.\n\nNulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.",
"createdTime": "2020-10-02T08:41:13.000Z"
}
名片实体:
    import 'package:equatable/equatable.dart';
import 'package:meta/meta.dart';

class BusinessCard extends Equatable {
final String id;
final String jobTitle;
final String jobDetails;
final String organization;

BusinessCard({
this.id,
@required this.jobTitle,
@required this.jobDetails,
@required this.organization,
});

@override
List<Object> get props => [
id,
jobTitle,
jobDetails,
organization,
];
}

名片模型(基于先前的实体):
    import 'package:meta/meta.dart';

import '../../domain/entities/businessCard.dart';

class BusinessCardModel extends BusinessCard {
BusinessCardModel({
String id,
@required String jobTitle,
@required String jobDetails,
@required String organization,
}) : super(
id: id,
jobTitle: jobTitle,
jobDetails: jobDetails,
organization: organization,
);
factory BusinessCardModel.fromJson(Map<String, dynamic> jsonMap) {
return BusinessCardModel(
id: jsonMap['id_card'],
jobTitle: jsonMap['jobTitle'],
jobDetails: jsonMap['jobDetails'],
organization: jsonMap['organization'],
);
}
}
要读取json文件,我正在使用灯具阅读器:
    import 'dart:io';

String readFixture(String fileName) =>
File('test/fixtures/$fileName').readAsStringSync();
请帮助我理解并解决该错误!

最佳答案

您的BusinessCardModel扩展了BusinessCard,该扩展了Equatable,所有成员均作为 Prop 。结果,当您比较两个具有不同成员值的模型的不同实例时,您将得到现在正在执行的false!您期望的id模型为'01',而您将要运行的模型BusinessCardModel.fromJson(jsonMap)'1'id。您应该更改tbusinessCardModel以匹配您定义的灯具。

关于flutter - 使用Flutter TDD返回基于json文件的有效BusinessCard模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64306863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com