dart - Mockito - 在空安全迁移后存根方法
问题描述
在 null 安全性之前,我可以像这样简单地模拟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})
如何使用新的 null 安全版本的 mockito 来做到这一点?我还能保持这个存根的通用特性并允许传入任何参数吗?
解决方案
这可以使用mocktail轻松完成。更容易,没有 mockito 所需的代码生成。
首先导入无酒精鸡尾酒很重要:
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);
});
}
推荐阅读
- excel - 从 ListBox 范围多选 VBA 中删除行,仅删除最后一行
- flutter - Flutter 应用的默认字体系列是什么?
- systemd - 如何在 systemd 的看门狗停止服务之前运行特定程序
- python - 在数据帧字典上生成平均值
- qt - 像素图 PNG 无法读取
- sql - SQL Server 中嵌套循环的更好方法
- postgresql - 在同一台服务器中转储和恢复,但在 postgresql 中的另一个数据库
- python - 如何使条目小部件具有可供选择的整数列表
- javascript - 在输入元素上使用角管
- java - 单击复选框时显示 Edittext 和 Textview