Ошибка: список не является подтипом будущего > - PullRequest
0 голосов
/ 26 мая 2020

Я работаю над приложением, используя принципы чистой архитектуры. Итак, я создал репозиторий

abstract class TrainerIdPlusInfoRepo {

 Future<Either<Failure,List<List>>> getTrainerIdPlusInfo();

 }

Затем я создал класс варианта использования.

  class GetTrainerAll extends UseCase<List, NoParams> {
  TrainerIdPlusInfoRepo trainerIdPlusInfoRepo;
  GetTrainerAll({ this.trainerIdPlusInfoRepo});
  @override
  Future <Either<Failure,List>> call(NoParams params) async{
  List trainerList =[];
  final listOfList = await trainerIdPlusInfoRepo.getTrainerIdPlusInfo();
  final result = listOfList.fold((failure)=> failure , (successData) {
  int length=  successData.length ;
    for(int i = 0 ; i < length; i++){
     trainerList.add(successData[i][1]);
    }
  return trainerList;
    } );
   return result;
    }

    }

Затем я написал для него тест.

    class MockTrainerIdPlusInfoRepo extends Mock implements TrainerIdPlusInfoRepo{}

    void main(){
    GetTrainerAll getTrainerAll ;
    MockTrainerIdPlusInfoRepo mockTrainerIdPlusInfoRepo; 

    setUp((){
    mockTrainerIdPlusInfoRepo = MockTrainerIdPlusInfoRepo();
    getTrainerAll= GetTrainerAll(trainerIdPlusInfoRepo: mockTrainerIdPlusInfoRepo,
    );

    });
    final tTrainer = Trainer(
    name: 'Test data',
    yearsOfExperience: 'Test data'

    );
    final tListOfList= [['Test data', tTrainer],['Test data', tTrainer]];
    final List<Trainer> tSuccessData = [tTrainer,tTrainer];

    group('getTrainerAll',(){

    test('should return a list of trainer if getTrainerInfoPlusId returns a List',

    () async{

  //arrange

      when(mockTrainerIdPlusInfoRepo.getTrainerIdPlusInfo())
          .thenAnswer((_) async=> Right(tListOfList) );
  // act


      final result = await getTrainerAll(NoParams());

  //assert
      expect(result.runtimeType, Right(tSuccessData));





    });

    });
    }

Результат: тип List не является подтипом типа FutureOr >> '

Согласно моему логу c, в тесте я объявил, что mockTrainerIdPlusInfoRepo.getTrainerIdPlusInfo () должен возвращать правую сторону любого . Следовательно, когда вызывается getAllTrainer (), должен быть вызван результат, соответствующий правильному значению. Итак, тест пройден.

Скажите, пожалуйста, где я ошибся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...