flutter - dart Mockito 可以模拟抽象类吗?
问题描述
我正在尝试向我的 dart/flutter 库中添加一些单元测试,而我的被测单元的依赖项之一是一个抽象类:
abstract class LoginService {
Future<void> login(String username, String password);
}
当我添加@GenerateMocks([LoginService])
到我的测试文件并运行build_runner
时,它失败了:
mockito:mockBuilder on test/login_test.dart: Invalid @GenerateMocks annotation: The GenerateMocks "classes" argument is missing, includes an unknown type, or includes an extension
但如果我手动输入:
class MockLoginService extends Mock implements LoginService {}
没有编译错误。
如果我更改LoginService
为不再存在abstract
(使用一些虚拟实现),那么模拟成功。
有任何想法吗?我检查了 dart Mockito 的 GitHub 问题,但找不到有这个问题的人。
解决方案
我使用 mockito 来模拟一个抽象存储库。例如;
@GenerateMocks([NumberTriviaRepository])
void main(){
final mockNumberTriviaRepository = MockNumberTriviaRepository();
}
使用 build_runner 生成文件;
flutter packages pub run build_runner build --delete-conflicting-outputs
推荐阅读
- c# - how to stop ignoring jObject properties when we call API?
- java - Spring Framework 错误创建具有名称的 bean 并且没有类型的限定 bean
- java - 我不确定为什么我的 If 语句没有打印我的变量
- azure-functions - 我在从 ADF 和 Postman 向持久函数(Azure Functions 的扩展)发出发布请求时遇到问题
- python - 多个excel文件和多个工作表到一个excel文件,但在Python中有不同的excel工作表
- r - 如何进行并行 cbind
- c - 使用 g++ 编译的 C 代码中的分段错误访问全局 2D 字符数组索引
- swift - NavigationBar 中的 SwiftUI SF 符号按钮不起作用
- arrays - 如何合并来自不同数组的数组
- azure - 如何为微软团队中的聊天机器人创建清单文件?