Dart Mockito-空安全迁移后的存根方法

Dart Mockito-空安全迁移后的存根方法,dart,mockito,flutter-test,dart-null-safety,Dart,Mockito,Flutter Test,Dart Null Safety,在使用空安全之前,我可以简单地模拟sendRequest(…)方法,如下所示: void stubBaseRepositorySendRequestResponse(String response) { when(baseRepository.sendRequest(onGetData: anyNamed('onGetData'))) .thenAnswer((_) { return Future<String>.value(response);

在使用空安全之前,我可以简单地模拟sendRequest(…)方法,如下所示:

 void stubBaseRepositorySendRequestResponse(String response) {
    when(baseRepository.sendRequest(onGetData: anyNamed('onGetData')))
        .thenAnswer((_) {
      return Future<String>.value(response);
    });
  }
void stubBaseRepositorySendRequestResponse(字符串响应){
当(baseRepository.sendRequest(onGetData:anyNamed('onGetData'))
.然后回答(){
返回未来值(响应);
});
}
其中,本方法的签名为:

Future<T> sendRequest<T>({required Future<T> Function() onGetData})
Future sendRequest({required Future Function()onGetData})
如何使用新的空安全版本的mockito实现这一点?
我是否仍可以保留此存根的通用字符并允许传入任何参数?

这可以轻松完成。 更简单,没有mockito所需的代码gen

首先导入mocktail很重要:

import 'package:mocktail/mocktail.dart';
然后创建要模拟的类的模拟:

class MockBaseRepository extends Mock implements BaseRepository {}

void stubBaseRepositorySendRequestResponse(String response) {
when(() => baseRepository.sendRequest(
        onGetData: any(named: 'onGetData', that: isNotNull))).thenAnswer((_) {
      return Future<String>.value(response);
    });
  }
class MockBaseRepository扩展了Mock实现BaseRepository{}
void stubBaseRepositorySendRequestResponse(字符串响应){
当(()=>baseRepository.sendRequest(
onGetData:any(名为:“onGetData”,即:notnull))。然后回答((){
返回未来值(响应);
});
}