Ole*_*Ole 3 dart dart-null-safety
我想使用 FirebaseAuth.instance (非常量值)作为构造函数中的默认参数。
我有这门课:
class MailAuth {
final FirebaseAuth firebaseAuth = FirebaseAuth.instance;
MailAuth();
// methods using firebaseAuth
}
Run Code Online (Sandbox Code Playgroud)
现在我想对这个类进行单元测试,所以我想模拟firebaseAuth并将模拟注入到构造函数中。它应该是一个命名参数,默认值为FirebaseAuth.instance。我尝试过这样的事情:
class MailAuth {
final FirebaseAuth firebaseAuth;
MailAuth({this.firebaseAuth = FirebaseAuth.instance});
// methods using firebaseAuth
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为它FirebaseAuth.instance不是一个常数。
我怎样才能实现这种行为?
使用null值作为符号来使用默认值:
MailAuth({FirebaseAuth? firebaseAuth})
: firebaseAuth = firebaseAuth ?? FirebaseAuth.instance;
Run Code Online (Sandbox Code Playgroud)
如果参数非空,则使用参数初始化变量,否则使用“默认”单例实例。
(针对空安全性进行了更新。这仍然有效,并且实例变量不是不可为空的。只有构造函数参数可以为空。)
| 归档时间: |
|
| 查看次数: |
1096 次 |
| 最近记录: |