Mockito-在空安全迁移后存根一个方法

在空安全之前,我可以简单地模拟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轻松完成。更容易,没有 mockito 所需的代码生成。

首先导入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);
    });
  }


以上是Mockito-在空安全迁移后存根一个方法的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>