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