首页 > 解决方案 > 具有 null 安全性的 Flutter mockito 引发 Null 类型错误

问题描述

我一直在关注关于模拟的官方文档一段时间后遇到这个问题。

此测试在运行时会引发错误type 'Null' is not a subtype of type 'String'

测试错误

当我从 更改String为 时String?getString()它过去了,我不明白为什么。我无意让该函数为空,所以我不需要让它可以为空。

标签: fluttermockitoflutter-test

解决方案


如果您使用的是 mockito 空安全性,则必须在那里执行:

  1. 您需要在 main() 之前添加 @GenerateMocks(["M"]),其中“M”将是您要创建 Mock 的类的名称,并且您必须删除 'class MMock extends Mock implements M'
@GenerateMocks(["M"])
void main() {....}
  1. 然后你需要导入“import package:mockito/annotations.dart';”

  2. 接下来你必须在你的开发依赖中安装'build_runner:^1.11.0',最后你必须运行命令:“flutter pub run build_runner build”,这将创建一个你必须使用的Mock文件而不是MMock,名称将是“Mockclassname”

您可以在此链接中了解更多信息: https ://github.com/dart-lang/mockito/blob/master/NULL_SAFETY_README.md

或此视频(西班牙语) https://www.youtube.com/watch?v=nWs3gfYF5u8


推荐阅读