flutter freezed : equals type of object is not same

161

The first example

expect(result, equals(UserMessagesResponseModel));

doesn't work because result is an instance and UserMessagesResponseModel is a type, you should use isA.

But on the second example I use isA and it still doesn't work!

You missed the () after isA, I believe that is why it does't work.

from this:

expect(result, isA<UserMessagesResponseModel>);

to this:

expect(result, isA<UserMessagesResponseModel>());
Share:
161
Cyrus the Great
Author by

Cyrus the Great

Updated on January 02, 2023

Comments

  • Cyrus the Great
    Cyrus the Great over 1 year

    I am using freezed to make object from json :

    @freezed
    class UserMessagesResponseModel with _$UserMessagesResponseModel {
      const factory UserMessagesResponseModel({
        final Data? data,
      }) = _UserMessagesResponseModel;
    
      factory UserMessagesResponseModel.fromJson(final Map<String, dynamic> json) =>
          _$UserMessagesResponseModelFromJson(json);
    }
    
    @freezed
    class Data with _$Data {
      const factory Data({
        final Messages? messages,
      }) = _Data;
    
      factory Data.fromJson(final Map<String, dynamic> json) =>
          _$DataFromJson(json);
    }...
    

    Now I am trying to make a test and chack type of created object:

    test('should return a valid model', () async {
      final jsonMap =
          json.decode(fixture('message.json')) as Map<String, dynamic>;
    
      final result = UserMessagesResponseModel.fromJson(
        jsonMap,
      );
        
      expect(result, equals(UserMessagesResponseModel));
    });
    

    why I got error:

    Expected: Type:<UserMessagesResponseModel>
      Actual: _$_UserMessagesResponseModel:<UserMessagesResponseModel...
    

    Freezed Not make same type ? How can I check type ?

    I also used:

    expect(result, isA<UserMessagesResponseModel>);
    

    but I got this:

    Expected: <Closure: () => TypeMatcher<UserMessagesResponseModel> from Function 'isA': static.>
      Actual: _$_UserMessagesResponseModel:<UserMessagesResponseModel
    
  • Cyrus the Great
    Cyrus the Great over 2 years
    Ops, yes It was my mistake to add (). Thanks .