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

 void stubBaseRepositorySendRequestResponse(String response) {
    when(baseRepository.sendRequest(onGetData: anyNamed('onGetData')))
        .thenAnswer((_) {
      return Future<String>.value(response);
    });
  }

其中,此方法的签名为:

Future<T> sendRequest<T>({required Future<T> Function() onGetData})

如何使用新的空安全版本的mockito实现这一点?

推荐答案

这可以很容易地做到mocktail.

请务必先导入mockail:

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);
    });
  }

Dart相关问答推荐

使用arm64v8/DART Docker映像进行编译时不支持DART镜像

有没有办法否定IF条件中的模式大小写匹配?

Dart中的运算符(){…}做什么?

?? ("if null") 运算符类型解析问题

flutter.io (dart) - 将填充设置为设备宽度的百分比?

在Flutter中在 initstate() 之前调用了dependOnInheritedElement()

dart nullsafey 和使用旧包

设置文本以匹配Flutter中的列宽

在Flutter中解析 JSON 到 Map

在Flatter中,依赖项必须指定版本号?

Flutter中图像纵横比的变化

找不到正确的提供程序-Flutter

Flutter url_launcher 未在发布模式下启动 url

Dart:你如何让 Future 等待 Stream?

如何构建具有多个视图的复杂 Web UI 应用程序?

我应该更喜欢迭代 Map.entries 还是 Map.values?

dart中的动态和对象有什么区别?

如何在 Dart 中创建私有变量?

将方法或值添加到 dart 中的枚举

如何在 Dart 中执行运行时类型判断?